versiones una tengo studio servidor saber query que management licenciado esta datos como sql-server database tsql

sql-server - una - sql server version query



¿Cómo se comprueba qué versión de SQL Server para una base de datos utilizando TSQL? (16)

¿Hay un procedimiento almacenado en el sistema para obtener la versión #?


Aquí hay un poco de script que uso para probar si un servidor es 2005 o posterior

declare @isSqlServer2005 bit select @isSqlServer2005 = case when CONVERT(int, SUBSTRING(CONVERT(varchar(15), SERVERPROPERTY(''productversion'')), 0, CHARINDEX(''.'', CONVERT(varchar(15), SERVERPROPERTY(''productversion''))))) < 9 then 0 else 1 end select @isSqlServer2005

Nota: actualizado de la respuesta original (ver comentario)


El artículo de KB vinculado en la publicación de Joe es excelente para determinar qué service packs se han instalado para cualquier versión. En la misma línea, este artículo de KB asigna los números de versión a revisiones específicas y actualizaciones acumulativas, pero solo se aplica a SQL05 SP2 y posteriores.


Hay otro procedimiento almacenado extendido que se puede usar para ver la información de la versión:

exec [master].sys.[xp_msver]


Obteniendo solo la versión principal de SQL Server en una sola selección:

SELECT SUBSTRING(ver, 1, CHARINDEX(''.'', ver) - 1) FROM (SELECT CAST(serverproperty(''ProductVersion'') AS nvarchar) ver) as t

Devuelve 8 para SQL 2000, 9 para SQL 2005 y así sucesivamente (probado hasta 2012).


Para SQL Server 2000 y superior, prefiero el siguiente análisis de la respuesta de Joe:

declare @sqlVers numeric(4,2) select @sqlVers = left(cast(serverproperty(''productversion'') as varchar), 4)

Da resultados de la siguiente manera:

Result Server Version 8.00 SQL 2000 9.00 SQL 2005 10.00 SQL 2008 10.50 SQL 2008R2 11.00 SQL 2012 12.00 SQL 2014

Lista básica de números de versión here , o una lista exhaustiva de Microsoft here .


Prueba esto:

SELECT @@VERSION[server], SERVERPROPERTY(''productversion''), SERVERPROPERTY (''productlevel''), SERVERPROPERTY (''edition'')


Prueba esto:

if (SELECT LEFT(CAST(SERVERPROPERTY(''productversion'') as varchar), 2)) = ''10'' BEGIN


Sé que esta es una publicación anterior pero actualicé el código que se encuentra en el blog.devstone.com/aaron/default,date,2006-12-15.aspx (que está muerto desde 2013-12-03) mencionado en la answer publicada por Matt Rogish :

DECLARE @ver nvarchar(128) SET @ver = CAST(serverproperty(''ProductVersion'') AS nvarchar) SET @ver = SUBSTRING(@ver, 1, CHARINDEX(''.'', @ver) - 1) IF ( @ver = ''7'' ) SELECT ''SQL Server 7'' ELSE IF ( @ver = ''8'' ) SELECT ''SQL Server 2000'' ELSE IF ( @ver = ''9'' ) SELECT ''SQL Server 2005'' ELSE IF ( @ver = ''10'' ) SELECT ''SQL Server 2008/2008 R2'' ELSE IF ( @ver = ''11'' ) SELECT ''SQL Server 2012'' ELSE IF ( @ver = ''12'' ) SELECT ''SQL Server 2014'' ELSE IF ( @ver = ''13'' ) SELECT ''SQL Server 2016'' ELSE SELECT ''Unsupported SQL Server Version''


SELECCIONE @@ VERSIÓN


Si todo lo que desea es la versión principal por motivos de T-SQL, a continuación se proporciona el año de la versión de SQL Server para 2000 o posterior.

SELECT left(ltrim(replace(@@Version,''Microsoft SQL Server'','''')),4)

Este código maneja con gracia los espacios y pestañas adicionales para varias versiones de SQL Server.



Tratar

SELECT @@VERSION

o para SQL Server 2000 y superior, lo siguiente es más fácil de analizar :)

SELECT SERVERPROPERTY(''productversion'') , SERVERPROPERTY(''productlevel'') , SERVERPROPERTY(''edition'')

Desde: http://support.microsoft.com/kb/321185


seleccione ''el sqlserver es'' + substring (@@ VERSIÓN, 21,5) ''versión sql''


CREATE FUNCTION dbo.UFN_GET_SQL_SEVER_VERSION ( ) RETURNS sysname AS BEGIN DECLARE @ServerVersion sysname, @ProductVersion sysname, @ProductLevel sysname, @Edition sysname; SELECT @ProductVersion = CONVERT(sysname, SERVERPROPERTY(''ProductVersion'')), @ProductLevel = CONVERT(sysname, SERVERPROPERTY(''ProductLevel'')), @Edition = CONVERT(sysname, SERVERPROPERTY (''Edition'')); --see: http://support2.microsoft.com/kb/321185 SELECT @ServerVersion = CASE WHEN @ProductVersion LIKE ''8.00.%'' THEN ''Microsoft SQL Server 2000'' WHEN @ProductVersion LIKE ''9.00.%'' THEN ''Microsoft SQL Server 2005'' WHEN @ProductVersion LIKE ''10.00.%'' THEN ''Microsoft SQL Server 2008'' WHEN @ProductVersion LIKE ''10.50.%'' THEN ''Microsoft SQL Server 2008 R2'' WHEN @ProductVersion LIKE ''11.0%'' THEN ''Microsoft SQL Server 2012'' WHEN @ProductVersion LIKE ''12.0%'' THEN ''Microsoft SQL Server 2014'' END RETURN @ServerVersion + N'' (''+@ProductLevel + N''), '' + @Edition + '' - '' + @ProductVersion; END GO


SELECT @@SERVERNAME AS ServerName, CASE WHEN LEFT(CAST(serverproperty(''productversion'') as char), 1) = 9 THEN ''2005'' WHEN LEFT(CAST(serverproperty(''productversion'') as char), 2) = 10 THEN ''2008'' WHEN LEFT(CAST(serverproperty(''productversion'') as char), 2) = 11 THEN ''2012'' END AS MajorVersion, SERVERPROPERTY (''productlevel'') AS MinorVersion, SERVERPROPERTY(''productversion'') AS FullVersion, SERVERPROPERTY (''edition'') AS Edition


select substring(@@version,0,charindex(convert(varchar,SERVERPROPERTY(''productversion'')) ,@@version)+len(convert(varchar,SERVERPROPERTY(''productversion''))))