sql >> Databasteknik >  >> RDS >> Sqlserver

Ett tillförlitligt sätt att verifiera T-SQL-lagrade procedurer

Här är vad som fungerade för mig:

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

Du bör få alla saknade beroenden för dina SPs, vilket löser problem med sen bindning.

Undantag :is_caller_dependent =1 betyder inte nödvändigtvis ett brutet beroende. Det betyder bara att beroendet löses vid körning eftersom schemat för det refererade objektet inte är specificerat. Du kan undvika att det specificerar schemat för det refererade objektet (en annan SP till exempel).

Tack till Jays blogg och den anonyma kommentatorn...



  1. Hur beräknar man antalet hopp mellan källan och destinationen?

  2. mysql skapa användare endast när användaren inte finns

  3. Postgresql ltree-fråga för att hitta förälder med de flesta barn; exklusive rot

  4. SQL Server 2008 - ordna efter strängar med nummer numeriskt