Hello guys,
Nesse post vou mostrar um BUG no SSMS 17.x (SQL Server Management Studio) que retorna a mensagem de erro abaixo:
Invalid version: 15. (Microsoft.SqlServer.Smo)
YouTube – Vídeo:
Segue abaixo um vídeo que gravei no YouTube mostrando na prática a execução dos scripts desse post:
https://www.youtube.com/watch?v=Sfg9MjO3c-s
SSMS 17.x – SQL Server 2019 x Invalid version: 15
Nosso amigo Alan Mairinck estava atendendo mais uma demanda aqui no #teampowertuning e se deparou com a mensagem de erro abaixo no SSMS:
Vamos simular o mesmo erro e vou explicar o que aconteceu.
Simulação Erro – Invalid version: 15
Vou utilizar as seguintes versões para o SSMS e SQL Server:
- SSMS – Versão 17.9.1
- SSMS – Versão 18.5
- SQL Server:
1 |
SELECT @@VERSION |
Microsoft SQL Server 2019 (RTM) – 15.0.2000.5 (X64)
Sep 24 2019 13:48:23 Copyright (C) 2019
Microsoft Corporation Developer Edition (64-bit)
on Windows 10 Home 10.0 <X64> (Build 18362: )
Se você ainda não utilizou o SQL Server 2019, segue abaixo um link com uma palestra que fiz junto com o Fabricio Lima onde mostramos algumas novidades bem legais.
https://luizlima.net/retrospectiva-2019-e-sql-server-es-14-sql-server-2019-o-que-vem-por-ai/
Vou utilizar também uma outra instância com o SQL Server 2017.
Inicialmente, vou criar uma simples procedure de teste no SQL Server 2019.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
USE Traces GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE PROC_TESTE AS BEGIN SELECT 1 AS Teste END GO EXEC PROC_TESTE |
Ela faz apenas um SELECT e retorna o número 1.
Até aqui tudo certo, agora vamos tentar modificar o código dessa procedure utilizando o SSMS 17.
Object Explorer -> Clicar com o botão direito em cima da procedure -> Modify
É nesse momento que a mensagem de erro aparece. =(
Invalid version: 15. (Microsoft.SqlServer.Smo)
Putz! Vamos tentar uma outra forma então para gerar o script de CREATE dessa procedure.
Object Explorer -> Clicar com o botão direito em cima da procedure -> Script Stored Procedure as -> CREATE To -> New Query Editor Window
Erro novamente! Pô, o SSMS está de brincadeira comigo, só pode!!!
Como sempre, nosso amigo Stack Overflow nos ajudou mais uma vez! Foi aí que descobrimos que isso é um BUG das versões mais antigas do SSMS.
Referência: https://stackoverflow.com/questions/57262748/sql-server-invalid-version-15-microsoft-sqlserver-smo
Por isso também é importante manter o SSMS atualizado, além do próprio SQL Server é claro.
https://luizlima.net/dicas-ssms-versions-and-check-for-updates/
Uma alternativa nesse caso para conseguir visualizar o código da procedure seria você executar o código abaixo:
1 2 3 |
USE Traces EXEC sp_helptext 'PROC_TESTE' |
Com isso, basta copiar o código e colar em uma nova query.
Por fim, repeti o mesmo procedimento com o SSMS 17, mas dessa vez na instância do SQL Server 2017 e não gerou nenhum erro. Com o SSMS 18 também funcionou normalmente nas duas instâncias.
Ou seja, o problema está nas versões anteriores ao SSMS 18 usando o SQL Server 2019. =(
Portanto, se for utilizar o SQL Server 2019, o mais recomendado é utilizar o SSMS 18 em diante. =)
UPDATE – 11/06/2020
Na documentação oficial do SQL Server 2019, a Microsoft informa também que você pode ter alguns problemas na instalação do SQL Server se as versões do SSMS 18.0, 18.1, 18.2, ou 18.3 estiverem instaladas.
OBS: Obrigado pelo comentário José Diz.
Espero que tenha gostado e que isso também possa ser útil no seu dia a dia. Até o próximo post!
Me siga no LinkedIn e YouTube para ficar por dentro das novidades.
Abraço,
Luiz Vitor França Lima
Consultor SQL Server