A store procedure “sp_describe_undeclared_parameters” foi introduzida na edição 2012, do SQL Server. Ela mostra os parâmetros não declarados, de um código T-SQL, e até mesmo sugere o(s) tipo(s).
Com ela, é possível visualizar as variáveis de uma forma mais amigável. Um T-SQL gerado por um framework ORM, costuma ser uma boa pedida.
Vamos fazer um exemplo:
DECLARE @SQL NVARCHAR(MAX) = 'SELECT @Var1 = 32, @Var2 = ''Minha string aqui'', @Var3 = 10.5'; EXEC sp_describe_undeclared_parameters @tSQL = @SQL;
Primeiro temos uma variável do tipo “NVARCHAR”, com o tamanho máximo, e com um “select”. Que por sua vez, tem declarado 3 variáveis.
Na linha posterior, estamos executando a store procedure “sp_describe_undeclared_parameters”, e passando a variável “@SQL” como parâmetro para “@tSQL”.
Como resultado temos, 3 linhas. Com os nomes das variáveis identificadas pela store procedure, e seus possíveis tipos.
Também podemos omitir algumas variáveis. Caso você já conheça uma ou mais variáveis do T-SQL. Para isso, utilize o segundo parâmetro da store procedure “@params”
DECLARE @SQL NVARCHAR(MAX) = 'SELECT @Var1 = 32, @Var2 = ''Minha string aqui'', @Var3 = 10.5'; EXECUTE sp_describe_undeclared_parameters @tSQL = @SQL, @params = '@Var1 INT';
No exemplo acima, estamos definindo que a variável “@Var1”, já é no nosso conhecimento, e não precisa ser listada.
Nas imagens, omiti maior parte das colunas geradas pela store procedure, veja no site do msdn, para maiores detalhes https://msdn.microsoft.com/pt-br/library/ff878260.aspx.
Espero ter ajudado!
Até a próxima pessoal!