Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Uma maneira confiável de verificar procedimentos armazenados T-SQL


Aqui está o que funcionou para mim:
-- Based on comment from http://blogs.msdn.com/b/askjay/archive/2012/07/22/finding-missing-dependencies.aspx
-- Check also http://technet.microsoft.com/en-us/library/bb677315(v=sql.110).aspx

select o.type, o.name, ed.referenced_entity_name, ed.is_caller_dependent
from sys.sql_expression_dependencies ed
join sys.objects o on ed.referencing_id = o.object_id
where ed.referenced_id is null

Você deve obter todas as dependências ausentes para seus SPs, resolvendo problemas com ligação tardia.

Exceção :is_caller_dependent =1 não significa necessariamente uma dependência quebrada. Significa apenas que a dependência é resolvida em tempo de execução porque o esquema do objeto referenciado não é especificado. Você pode evitá-lo especificando o esquema do objeto referenciado (outro SP, por exemplo).

Créditos ao blog de Jay e o comentarista anônimo...