Quais são as formas possíveis de determinar a versão implantada do SQL Server?
Eu tentei fazer isso usando o software SQL Server. Eu quero fazer isso usando uma instrução SQL de linha de comando.
sql-server-2008
version
Yameen Bashir
fonte
fonte
Respostas:
A seguir, são possíveis maneiras de ver a versão:
Método 1: Conecte-se à instância do SQL Server e execute a seguinte consulta:
Um exemplo da saída desta consulta é o seguinte:
Método 2: Conecte-se ao servidor usando o Pesquisador de Objetos no SQL Server Management Studio. Depois que o Object Explorer estiver conectado, ele mostrará as informações da versão entre parênteses, juntamente com o nome de usuário usado para conectar-se à instância específica do SQL Server.
Método 3: Examine as primeiras linhas do arquivo Errorlog para essa instância. Por padrão, o log de erros está localizado em Arquivos de Programas \ Microsoft SQL
Server\MSSQL.n\MSSQL\LOG\ERRORLOG
eERRORLOG.n
arquivos. As entradas podem se parecer com o seguinte:Como você pode ver, esta entrada fornece todas as informações necessárias sobre o produto, como versão, nível do produto, 64 bits versus 32 bits, a edição do SQL Server e a versão do SO em que o SQL Server está sendo executado.
Método 4: Conecte-se à instância do SQL Server e execute a seguinte consulta:
Nota Esta consulta funciona com qualquer instância do SQL Server 2000 ou de uma versão posterior
fonte
Dá 8,00, 9,00, 10,00 e 10,50 para SQL 2000, 2005, 2008 e 2008R2, respectivamente.
Além disso, tente o procedimento estendido do sistema
xp_msver
. Você pode chamar esse procedimento armazenado comofonte
TL; DR
Isso usa SQLCMD (fornecido com o SQL Server) para conectar-se à instância do servidor local usando autenticação do Windows, gera um erro se uma verificação de versão falhar e retorna
@@ERROR
como a linha de comandoERRORLEVEL
se> = 16 (e a segunda linha vai para o:ExitFail
rótulo se o acima mencionadoERRORLEVEL
é> = 1).Watchas, Gotchas e mais informações
Para o SQL 2000+, você pode usar o SERVERPROPERTY para determinar muitas dessas informações.
Embora o SQL 2008+ suporte as propriedades
ProductMajorVersion
&ProductMinorVersion
,ProductVersion
existe desde 2000 (lembrando que, se uma propriedade não for suportada, a função retornaráNULL
).Se você está interessado em versões anteriores, pode usar a
PARSENAME
função para dividir aProductVersion
(lembrando que as "partes" são numeradas da direita para a esquerda, ou seja,PARSENAME('a.b.c', 1)
retornamc
).Lembre-se também de que
PARSENAME('a.b.c', 4)
retornaNULL
, porque o SQL 2005 e versões anteriores usaram apenas três partes no número da versão!Portanto, para o SQL 2008+, você pode simplesmente usar:
Para o SQL 2000-2005, você pode usar:
(o
PARSENAME(...,0)
é um truque para melhorar a legibilidade)Portanto, uma verificação para uma versão do SQL 2000+ seria:
Isso é muito mais simples se você estiver interessado apenas no SQL 2008+, pois
SERVERPROPERTY('ProductMajorVersion')
retornaNULL
para versões anteriores, para que você possa usar:E você pode usar as propriedades
ProductLevel
eEdition
(ouEngineEdition
) para determinar RTM / SP n / CTP ne Dev / Std / Ent / etc, respectivamente.Para sua informação, os principais números de versão SQL são:
E isso tudo funciona também para o SQL Azure!
EDITADO: Você também pode verificar o seu nível de compatibilidade com o banco de dados, pois ele pode ser configurado com uma compatibilidade mais baixa.
fonte
Aqui está o que eu fiz para encontrar a versão: basta escrever
SELECT @@version
e ela fornecerá a versão.fonte
Basta usar
Saída de amostra
Fonte: Como verificar a versão do servidor sql? (Várias maneiras explicadas)
fonte
se esse valor for 0 não for uma edição expressa
fonte