sql >> Database >  >> RDS >> Sqlserver

Een betrouwbare manier om opgeslagen T-SQL-procedures te verifiëren

Dit is wat voor mij werkte:

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

U zou alle ontbrekende afhankelijkheden voor uw SP's moeten krijgen, waardoor problemen met late binding worden opgelost.

Uitzondering :is_caller_dependent =1 betekent niet noodzakelijk een verbroken afhankelijkheid. Het betekent alleen dat de afhankelijkheid tijdens runtime wordt opgelost omdat het schema van het object waarnaar wordt verwezen niet is opgegeven. U kunt het vermijden door het schema van het object waarnaar wordt verwezen te specificeren (een andere SP bijvoorbeeld).

Met dank aan Jay's blog en de anonieme commentator...



  1. Records of waarden markeren in een Microsoft Access-rapport met behulp van voorwaardelijke opmaak

  2. Gelijktijdige gebruikerssessies beperken voor een specifieke login in SQL Server

  3. mysql int als valuta selecteren of int converteren naar valutaformaat?

  4. Hoe pyodbc 64-bit installeren?