Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Un modo affidabile per verificare le stored procedure T-SQL

Ecco cosa ha funzionato per me:

-- 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

Dovresti ottenere tutte le dipendenze mancanti per i tuoi SP, risolvendo i problemi con l'associazione tardiva.

Eccezione :is_caller_dependent =1 non significa necessariamente una dipendenza interrotta. Significa semplicemente che la dipendenza viene risolta in runtime perché lo schema dell'oggetto di riferimento non è specificato. Puoi evitarlo specificando lo schema dell'oggetto di riferimento (un altro SP per esempio).

Crediti al blog di Jay e il commentatore anonimo...