¿Hay algún procedimiento almacenado en el sistema para obtener la versión #?¿Cómo se comprueba qué versión de SQL Server para una base de datos utilizando TSQL?
Respuesta
Trate
SELECT @@VERSION
o para SQL Server 2000 y por encima de los siguientes es más fácil de analizar :)
SELECT SERVERPROPERTY('productversion')
, SERVERPROPERTY('productlevel')
, SERVERPROPERTY('edition')
El segundo funciona para mí, y lo agrego para verificar en Wikipedia que entiendo que 8.00.xx significa SQL server 2000 – pdem
SELECT @@ VERSION
El El artículo de KB enlazado en Joe's post es ideal para determinar wh Estos paquetes de servicio se han instalado para cualquier versión. En las mismas líneas, this KB article correlaciona números de versión con revisiones específicas y actualizaciones acumulativas, pero solo se aplica a SQL05 SP2 y posteriores.
Aquí hay un poco de secuencia de comandos que utilizo 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: actualizada de respuesta original (ver comentario)
Acabo de encontrar que esto no funciona en sql 2008 porque '10' es menor que '9'. Puede cambiar el valor de la respuesta actualizada para usar 8, 9, 10 o lo que sea que necesite probar como valor mínimo –
Prueba esto:
if (SELECT LEFT(CAST(SERVERPROPERTY('productversion') as varchar), 2)) = '10'
BEGIN
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 los números de versión here, o lista exhaustiva de Microsoft here.
Me gusta, agradable, simple y resusuable en todas las versiones de servidor. Usé una versión ligeramente modificada de lo anterior: 'select cast (serverproperty ('productversion') como varchar) como [resultado]'. Mi punto es que puedo ejecutar lo anterior a través de 'ExecuteScalar' de ADO.NET y luego analizar la cadena de resultados como un objeto' System.Version'. Además, convertirlo en numérico le da diferentes significados a los números de versión cuando se trata de ceros al final y conteo de dígitos del segmento de la versión, mientras que una cadena se puede analizar a un objeto 'Version' válido sin perder la consistencia de cada componente de la versión. –
Esto está mal. '12.00' es igual a' SQL Server 2014'. – l33t
@ l33t: Gracias, corregido. – Geoff
Sé que esto es un mensaje más antiguo, pero he actualizado el código que se encuentra en el link (que ha muerto como del 12.03.2013) mencionado en el answer publicados 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'
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
recibiendo sólo la versión principal de SQL Server en un solo seleccionar:
SELECT SUBSTRING(ver, 1, CHARINDEX('.', ver) - 1)
FROM (SELECT CAST(serverproperty('ProductVersion') AS nvarchar) ver) as t
devoluciones 8
para SQL 2000, SQL 2005 para 9
y así sucesivamente (probado hasta 2012).
Hay otro procedimiento almacenado extendido que se puede utilizar para ver la información de versión:
exec [master].sys.[xp_msver]
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' ('[email protected] + N'), ' + @Edition + ' - ' + @ProductVersion;
END
GO
seleccione 'del sqlserver es' + subcadena (@@ VERSION, 21,5) 'versión de SQL '
Si todo lo que quiere es la versión principal por motivos de T-SQL, a continuación le mostramos 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 controla con gracia los espacios adicionales y las pestañas para varias versiones de SQL Server.
Prueba esto:
SELECT @@VERSION[server], SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
Trate
SELECT @@MICROSOFTVERSION/0x01000000 AS MajorVersionNumber
Para obtener más información, véase: Querying for version/edition info
- 1. Cómo determinar qué versión de SQL Server se está ejecutando utilizando T-SQL
- 2. ¿Cómo hago una versión de una base de datos de SQL Server?
- 3. ¿Cómo se truncan todas las tablas en una base de datos utilizando TSQL?
- 4. ¿Cómo se comprueba la versión de OpenMPI?
- 5. ¿Cómo comprobar si existe una base de datos en SQL Server?
- 6. Base de datos SQL Azure usando SQL Server Management Studio
- 7. TSQL conocer miembros de la función de base de datos
- 8. ¿Cómo creo una base de datos programáticamente en SQL Server?
- 9. Cómo determinar qué bases de datos se están utilizando en SQL Server 2000
- 10. ¿Cómo escucho de base de datos SQL Server cambia
- 11. Analizador de SQL Server: cómo filtrar trazas para mostrar solo TSQL que contiene una instrucción DELETE?
- 12. ¿Cómo se define una cadena de conexión a una base de datos de SQL Server 2008?
- 13. Cómo insertar un blob en una base de datos utilizando SQL Server Management Studio
- 14. ¿Cómo puedo crear una base de datos utilizando pymssql
- 15. ¿Cómo crear un proyecto de base de datos desde una base de datos SQL Server existente?
- 16. copiar una base de datos dentro de SQL Server Express?
- 17. Asegurar una base de datos SQL Server 2008R2
- 18. Eliminar los últimos N caracteres del campo en una base de datos SQL Server
- 19. Crear una base de datos mediante programación en SQL Server
- 20. Mover una tabla de una base de datos a otra base de datos SQL Server
- 21. ¿Qué herramientas BUENAS están disponibles para generar ERD desde una base de datos de SQL Server?
- 22. Migraciones de base de datos para SQL Server
- 23. Visualización de clientes de la base de datos de SQL Server utilizando control datalist en asp.net
- 24. ¿Cómo se crea una relación de clave externa en una base de datos SQL Server CE (Compact Edition)?
- 25. Seleccionar nodos XML utilizando TSQL
- 26. ¿Cómo puedo confirmar que una base de datos es Postgres y qué versión usa SQL?
- 27. ¿Cómo puedo confirmar que una base de datos es Oracle y qué versión usa SQL?
- 28. Usando una base de datos .MDF SQL Server con ASP.NET versus usando SQL Server
- 29. Comando TSQL para conectarse a otro servidor (SQL Server 2005)
- 30. Múltiples idiomas en una base de datos - SQL Server 2005
http://blog.devstone.com/aaron/default,date,2006-12 -15.aspx –