Overblog Folge diesem Blog
Edit post Administration Create my blog
Blog von Olaf Helper

Objekt-Abhängigkeiten im MS SQL Server

3. Februar 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

Neben dem Durchsuchen von Objektdefinitionen kann man auch die Abhängigkeiten von Objekten untereinander selektieren, dazu dient das System-View sys.sql_dependencies.

Ich habe dazu eine Beispiel-Selektion erstellt, diese kann natürlich nach gezielt auf Objekttypen oder Namen gefiltert werden. Natürlich kann mit der einfachen Abfrage die Abhängigkeiten nicht rekursive ermittelt werden, aber es werden alle aufgeführt. 

 -- Objektabhängigkeiten ermitteln (ab SQL2005) 
 SELECT OBJSCH.name + '.' + OBJ.name AS Obj_Name, 
  OBJ.type_desc AS Obj_Type, 
  SCHEMA_NAME(OBJPAR.schema_id) + '.' + OBJPAR.name AS Obj_Parent, 
  REFSCH.name + '.' + REF.name AS Ref_ObjectName, 
  REF.type_desc AS Ref_ObjectType, 
  REFCOL.name AS Ref_ColumnName, 
  SCHEMA_NAME(REFPAR.schema_id) + '.' + REFPAR.name AS Ref_Parent, 
  DEP.class_desc AS ReferenceDescription, 
  DEP.is_selected, DEP.is_select_all, DEP.is_updated  
 FROM sys.sql_dependencies AS DEP 
  INNER JOIN sys.objects AS OBJ 
  ON DEP.object_id = OBJ.object_id 
  INNER JOIN sys.schemas AS OBJSCH 
  ON OBJ.schema_id = OBJSCH.schema_id 
  LEFT JOIN sys.objects AS OBJPAR 
  ON OBJ.parent_object_id = OBJPAR.object_id 
  INNER JOIN sys.objects AS REF 
  ON DEP.referenced_major_id = REF.object_id  
  LEFT JOIN sys.columns AS REFCOL 
  ON DEP.referenced_major_id = REFCOL.object_id 
  AND DEP.referenced_minor_id = REFCOL.column_id 
  INNER JOIN sys.schemas AS REFSCH 
  ON REF.schema_id = REFSCH.schema_id 
  LEFT JOIN sys.objects AS REFPAR 
  ON REF.parent_object_id = REFPAR.object_id 
 ORDER BY OBJSCH.name, OBJ.name, OBJPAR.name, 
  REFSCH.name, REF.name, REFPAR.name, REFCOL.name 

Diesen Post teilen

Repost 0

Kommentiere diesen Post