Aracılığıyla paylaş


SQL Raporlama bağımlılıklar

sql bağımlılıkları, kullanıcı tanımlı bir varlık başka bir varlık üzerinde bağımlı hale sql deyimleri kullanılan by-name başvurulardır.Örneğin, görünüm veya yordam tarafından döndürülen verileri içeren tabloları varlığını bağlı görünümler ve saklı yordamlar bağlıdır.Bağımlılık bilgileri üzerinde raporlama aşağıdaki senaryolarda kullanışlıdır:

  • Bir modül bir saklı yordam gibi bir uygulamadan diğerine taşıma.

    Bir modül taşımadan önce herhangi bir veritabanı veya veritabanları arası varlıklar da birlikte modülü taşınmalıdır modülü tarafından başvurulan olup olmadığını belirleyebilirsiniz.

  • Tanım ekleme veya bir sütun bırakarak gibi varlık değiştirme bir tablo.

    Bir varlığın değiştirmeden önce güncel bir tanımlama varlık üzerinde bağımlı diğer varlıkları olup olmadığını belirleyebilirsiniz.Bu bağımlı varlıkları beklenmeyen üretebilir sonuçlar sorgulanan veya değiştirilmesinden sonra çağrılan ve meta veriler yenileme işlemini kendi tanımına değişiklik gerektiriyor olabilir.

  • Bir veya daha fazla veritabanlarını bir sunucudan diğerine taşıma.

    Başka bir sunucuya veritabanlarını taşımadan önce varlıkları bir veritabanındaki başka bir veritabanındaki varlıklar üzerinde bağımlılıkları yüklü olup olmadığını belirleyebilirsiniz.Bu şekilde, bu veritabanlarına aynı sunucuya taşımak için biliyor.

  • Yük devretme birden çok veritabanı span uygulamalar için yapılandırma.

    Uygulamanızın tüm zamanlarını ve use veritabanı kullanılabilir olmasını sağlamak istediğiniz yansıtma yük devretme stratejinizi olarak.Birden fazla veritabanı üzerinde uygulama bağlıdır ve emin olmak istiyorsanız uygulamayı başarıyla onu durumunda çalışacağı için devri yansıtma sunucusu.Works at veritabanı yansıtma için düzey, böylece yansıtma her biri için ayrı ayrı küme hangi uygulama için önemli veritabanlarıdır belirlemek gerekir.Tüm veritabanları birlikte, bu nedenle uygulama üzerinde çalışıyor olma devri, sonra emin olabilirsiniz yansıtma sunucusu.

  • Varlıkların değeri aygıtınkiyle tam olarak adları kullanarak dağıtılmış sorguları yürütmek bir uygulamada bulma.

    Bağlantılı sunucuları Dağıtılmış sorgularda kullanılan bilmek istersiniz.

  • Arayan bağımlı başvuruları veya tek parça ad başvurular içeren bir uygulamada kullanılan varlıkları bulma.

    Bir uygulamayı dağıtmadan önce uygulama tarafından kullanılan varlıkları arayan bağımlı başvuruları veya yalnızca bir bölümü adı kullanarak varlıkları başvurular içeren belirleyebilirsiniz.Bu tür başvurular zayıf programlama uygulamalarını göstermek ve uygulama dağıtıldığında beklenmedik davranışa neden.Bunu gerçekleştirene kadar bu bilgileri belirlenir ve başvurulan varlık (bağlama) çözüm arayan şema üzerinde bağlıdır çünkü saat.Bu başvuruların bulunduğunda, sorguları gibi uygun bir çok parçalı ad belirterek düzeltilebilir schema_name.object_name.

sql bağımlılıkları hakkında daha fazla bilgi için bkz: SQL bağımlılıklar anlama.

Sistem görünümler ve İşlevler kullanarak raporlama bağımlılıklar

sql bağımlılıkları görüntülemek için SQL Server 2008 sağlayan sys.sql_expression_dependencies katalog görünüm ve sys.dm_sql_referenced_entities ve sys.dm_sql_referencing_entities Dinamik yönetim işlevleri.Bu nesneler kullanıcı tanımlı varlıklar üzerinde bağımlılık bilgilerini dönmek için sorgulama yapabilirsiniz.

sql bağımlılıkları da görüntülenebilir kullanarak View Dependencies'i , SQL Server Management Studio.Daha fazla bilgi için bkz: Nasıl yapılır: View SQL bağımlılıkları (SQL Server Management Studio'yu).

Sys.sql_expression_dependencies Katalog görünümü kullanma

The sys.sql_expression_dependencies catalog view provides the database owner or database administrator with the ability to report dependency information for a given database.Bu görünümü kullanarak, aşağıdaki gibi genel sorulara yanıt verebilir:

  • Hangi sunucular arası veya veritabanları arası bağımlılıkları veritabanı var mı?

  • Hangi bağımlılıkları veritabanı içinde bulunuyor?

  • Veritabanını hangi varlıklarda arayan bağımlı başvuruları var mı?

  • Hangi server -düzey veya veritabanı -düzey ddl Tetikleyiciler varlıkları veritabanındaki bağımlılıkları sahip?

  • Hangi modüller veritabanında kullanıcı tanımlı tür (udt) kullanılsın mı?

sys.sql_expression_dependencies Aşağıdaki sınırlamalar vardır:

  • Yalnızca geçerli değeri aygıtınkiyle tam olarak veya üç bölümlü adı belirtildiğinde çapraz sunucu ve veritabanı arası varlıklar üzerinde bağımlılıkları döndürülür.Başvurulan varlıkları için kimlikleri döndürülür.

  • Sütun düzey bağımlılıkları şemaya bağlı varlıklar için yalnızca rapor edilir.

Sys.dm_sql_referenced_entities dinamik yönetimi işlevi kullanma

The sys.dm_sql_referenced_entities function returns one row for each user-defined entity referenced by name in the definition of the specified referencing entity.Bir kullanıcı tanımlı nesne, server - başvuru varlık olabilirdüzey DDL tetikleyicisi veya veritabanı -düzey DDL tetikleyicisi.Bu tarafından döndürülen aynı bilgileri, sys.sql_expression_dependencies, ancak sonuç küme tarafından başvurulan varlıkları sınırlıbelirtilen başvuru varlık. Bu işlev, sahip oldukları veya üzerinde görünüm TANIMI iznine sahip oldukları modül bağımlılıkları izlemek isteyen geliştiriciler için yararlıdır.

Sys.dm_sql_referencing_entities dinamik yönetimi işlevi kullanma

The sys.dm_sql_referencing_entities function returns one row for each user-defined entity in the current database that references another user-defined entity by name.Başvuru varlık olabilir kullanıcı tanımlı nesne, (diğer ad veya clr udt) türü, xml şema koleksiyonu veya bölümleme işlev.Bu işlev, sahip oldukları varlıklar üzerinde bağımlılıkları izlemek isteyen geliştiriciler için yararlıdır.Örneğin, kullanıcı tanımlı tür değiştirmeden önce bir geliştirici bu işlev bu türüne bağlıdır veritabanındaki tüm varlıkların belirlemek için kullanabilirsiniz.Not için başvuran bir kullanıcı tanımlı tür bir tablo türü hesaplanan sütun, denetim kısıtlamasını veya varsayılan kısıtlama tanımında belirtilmedikçe bildirdi.

Örnekler

Aşağıdaki örnekler kullanarak sql bağımlılıkları dönmek sys.sql_expression_dependencies katalog görünüm ve sys.dm_sql_referenced_entities ve sys.dm_sql_referencing_entities Dinamik yönetim işlevleri.

Belirtilen varlık bağlı olduğu varlıkları raporlama

Sorgulama yapabilirsiniz sys.sql_expression_dependencies Katalog görünümü veya sys.dm_sql_referenced_entities dinamik yönetim işlev belirtilen varlık bağlı olduğu varlıkların listesini döndürmek için.Örneğin, saklı yordam veya tetikleyiciyi gibi bir modül tarafından başvurulan varlıkları listesi dönebilirsiniz.

Aşağıdaki örnek, bir tablo, görünüm ve üç saklı yordamlar oluşturur.Bu nesneler daha sonraki sorguları nasıl rapor bağımlılık bilgilerini göstermek için kullanılır.Gözlemek, MyView ve MyProc3 her iki başvuru Mytable.MyProc1 başvurular MyView, ve MyProc2 başvuruları MyProc1.

USE AdventureWorks2008R2;
GO
-- Create entities
CREATE TABLE dbo.MyTable (c1 int, c2 varchar(32));
GO
CREATE VIEW dbo.MyView
AS SELECT c1, c2 FROM dbo.MyTable;
GO
CREATE PROC dbo.MyProc1
AS SELECT c1 FROM dbo.MyView;
GO
CREATE PROC dbo.MyProc2
AS EXEC dbo.MyProc1;
GO
CREATE PROC dbo.MyProc3
AS SELECT * FROM AdventureWorks2008R2.dbo.MyTable;
   EXEC dbo.MyProc2;
GO

Aşağıdaki örnek sorgu sys.sql_expression_dependencies katalog görünüm tarafından başvurulan varlıkları dönmek için MyProc3.

USE AdventureWorks2008R2;
GO
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name 
    ,referenced_server_name AS server_name
    ,referenced_database_name AS database_name
    ,referenced_schema_name AS schema_name
    , referenced_entity_name
FROM sys.sql_expression_dependencies 
WHERE referencing_id = OBJECT_ID(N'dbo.MyProc3');
GO

Sonuç kümesi buradadır.

referencing_entity server_name database_name         schema_name referenced_entity

------------------ ----------- --------------------  ----------- -----------------

MyProc3            NULL        NULL                  dbo         MyProc2

MyProc3            NULL        AdventureWorks2008R2  dbo         MyTable

(2 row(s) affected)

İki varlık başvurulan tanımında, by-name MyProc3 döndürülür.Sunucu adı null çünkü değeri aygıtınkiyle tam olarak geçerli bir ad kullanılarak başvurulan varlıkları belirtilir.Veritabanı adı için gösterilen MyTable çünkü varlık tanımlanmış yordamı kullanarak geçerli bir üç bölümlü adı.

Benzer bilgiler döndürülmesi kullanarak sys.dm_sql_referenced_entities.Nesne adları bildirimi ek olarak bu işlev sütun düzey bağımlılıkları şemaya bağlı hem de olmayan-şemaya bağlı varlıklar üzerinde geri dönmek için kullanılabilir.Aşağıdaki örnek varlıklar üzerinde verir MyProc3 bağlıdır dahil sütun düzey bağımlılıkları.

USE AdventureWorks2008R2;
GO
SELECT referenced_server_name AS server
    , referenced_database_name AS database_name
    , referenced_schema_name AS schema_name
    , referenced_entity_name AS referenced_entity
    , referenced_minor_name AS column_name
FROM sys.dm_sql_referenced_entities ('dbo.MyProc3', 'OBJECT');
GO

Sonuç kümesi buradadır.

server_name database_name         schema_name  referenced_entity  column_name

----------- --------------------  -----------  -----------------  -----------

NULL        NULL                  dbo          MyProc2            NULL

NULL        AdventureWorks2008R2  dbo          MyTable            NULL

NULL        AdventureWorks2008R2  dbo          MyTable            c1

NULL        AdventureWorks2008R2  dbo          MyTable            c2

(4 row(s) affected)

Bu sonuç küme aynı iki varlık döndürülür, ancak sütunlar üzerinde bağımlılık gösteren iki ek satır döndürülür c1 ve c2 , MyTable.Tanımında dikkat MyProc3, bir select * deyim kullanıldı sütunlara başvurmak için MyTable.Bu önerilen bir kodlama uygulaması değildir; Ancak, sütun düzey bağımlılıkları hala tarafından izlenen Veritabanı Altyapısı.

Bu noktaya kadar nasıl bir varlık doğrudan bağımlı olduğu varlıkları dönmek örnekler gösterdi.Aşağıdaki örnek üzerinde tüm doğrudan ve dolaylı bağımlılıkları geri dönmek için bir özyinelemeli ortak tablo ifade (cte) kullanan bir varlık.

DECLARE @referencing_entity AS sysname;
SET @referencing_entity = N'MyProc3';

WITH ObjectDepends(entity_name,referenced_schema, referenced_entity, referenced_id,level)
AS (
    SELECT entity_name = 
       CASE referencing_class
          WHEN 1 THEN OBJECT_NAME(referencing_id)
          WHEN 12 THEN (SELECT t.name FROM sys.triggers AS t 
                       WHERE t.object_id = sed.referencing_id)
          WHEN 13 THEN (SELECT st.name FROM sys.server_triggers AS st
                       WHERE st.object_id = sed.referencing_id) COLLATE database_default
       END
    ,referenced_schema_name
    ,referenced_entity_name
    ,referenced_id
    ,0 AS level 
    FROM sys.sql_expression_dependencies AS sed 
    WHERE OBJECT_NAME(referencing_id) = @referencing_entity 
UNION ALL
    SELECT entity_name = 
       CASE sed.referencing_class
          WHEN 1 THEN OBJECT_NAME(sed.referencing_id)
          WHEN 12 THEN (SELECT t.name FROM sys.triggers AS t 
                       WHERE t.object_id = sed.referencing_id)
          WHEN 13 THEN (SELECT st.name FROM sys.server_triggers AS st
                       WHERE st.object_id = sed.referencing_id) COLLATE database_default
       END
    ,sed.referenced_schema_name
    ,sed.referenced_entity_name
    ,sed.referenced_id
    ,level + 1   
    FROM ObjectDepends AS o
    JOIN sys.sql_expression_dependencies AS sed ON sed.referencing_id = o.referenced_id
    )
SELECT entity_name,referenced_schema, referenced_entity, level
FROM ObjectDepends
ORDER BY level;
GO

Sonuç kümesi buradadır.

entity_name  referenced_schema  referenced_entity  level

-----------  -----------------  -----------------  -----

MyProc3      dbo                MyProc2            0

MyProc3      dbo                MyTable            0

MyProc2      dbo                MyProc1            1

MyProc1      dbo                MyView             2

MyView       dbo                MyTable            3

(5 row(s) affected)

Bu sonuç küme MyProc2 ve MyTable dönen doğrudan bağımlılıklarını olarak olarak gösterilen düzey 0 değeri.Üçüncü satır dolaylı bağımlılık gösterir MyProc1, hangi tanımında başvurulan MyProc2.Dördüncü satır bağımlılık gösterir MyView, hangi tanımında başvurulan MyProc1 ve son olarak, bir bağımlılık MyTable, hangi tanımında başvurulan MyView.

Hiyerarşik bağımlılığı bilgi döndürerek, başka bir veritabanına taşınması gerekiyorsa, bu nesnelerin dağıtılması gereken sırayı gerçekleştirip ve belirli bir varlık doğrudan ve dolaylı bağımlılıkları tam listesini belirler.

Aşağıdaki örnek kullanarak aynı hiyerarşik bağımlılığı bilgi verir sys.dm_sql_referenced_entities işlev.Varlıkları, MyProc3 bağlıdır. sütun düzey bağımlılıkları dahil olmak üzere verilen

USE AdventureWorks2008R2;
GO
DECLARE @entity AS sysname , @type AS sysname;
SET @entity = N'dbo.MyProc3';
SET @type = N'OBJECT';

WITH ObjectDepends(referenced_schema_name, referenced_entity_name, referenced_column, 
     referenced_id,level)
AS (
    SELECT 
     referenced_schema_name
    ,referenced_entity_name
    ,referenced_minor_name AS referenced_column
    ,referenced_id
    ,0 AS level 
    FROM sys.dm_sql_referenced_entities (@entity, @type)
    UNION ALL
    SELECT
     re.referenced_schema_name
    ,re.referenced_entity_name
    ,re.referenced_minor_name AS referenced_column
    ,re.referenced_id
    ,level + 1 
    FROM ObjectDepends AS o
    CROSS APPLY sys.dm_sql_referenced_entities (o.referenced_schema_name + N'.' + o.referenced_entity_name, @type) AS re
    )
SELECT referenced_schema_name, referenced_entity_name, referenced_column, level
FROM ObjectDepends
ORDER BY level;
GO

Belirtilen bir varlık üzerinde bağımlı varlıkları üzerinde raporlama

Sorgulama yapabilirsiniz sys.sql_expression_dependencies Katalog görünümü veya sys.dm_sql_referencing_entities dinamik yönetim işlev üzerinde belirtilen varlık bağlı olan varlıkların listesini döndürmek için.Örneğin, belirtilen varlık için bir tablo ise, kendi tanım adını yazarak bu tabloya başvuran tüm varlıkların döndürülür.

Varlık başvurusu varlıkları aşağıdaki örnek verir dbo.MyTable.

USE AdventureWorks2008R2;
GO
SELECT OBJECT_SCHEMA_NAME ( referencing_id ) AS referencing_schema_name,
    OBJECT_NAME(referencing_id) AS referencing_entity_name, 
    COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_column, 
    referencing_class_desc, referenced_class_desc,
    referenced_server_name, referenced_database_name, referenced_schema_name,
    referenced_entity_name, 
    COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column,
    is_caller_dependent, is_ambiguous
FROM sys.sql_expression_dependencies AS sed
WHERE referenced_id = OBJECT_ID(N'dbo.MyTable');
GO

Benzer bilgiler döndürülmesi kullanarak sys.dm_sql_referenced_entities dinamik yönetim işlev.

USE AdventureWorks2008R2;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('dbo.MyTable', 'OBJECT');
GO

Raporlama sütun düzeyi bağımlılıklar

Sütun düzey bağımlılıkları kullanarak rapor edilen sys.dm_sql_referenced_entities için şemaya bağlı hem de olmayan-şemaya bağlı varlıkları.Sütun düzey bağımlılıkları şemaya bağlı varlıklar de bildirilen kullanarak sys.sql_expression_dependencies.

Aşağıdaki örnek sorgu sys.dm_sql_referenced_entities için rapor sütun düzey bağımlılıkları şemaya bağlı varlıkları.İlk örnek oluşturur Table1 ve Table 2 ve saklı yordam Proc1.Yordam sütunları başvuran b ve c , Table1 ve sütun c2 , Table2.Görünüm sys.dm_sql_referenced_entities ile çalışan saklı yordam belirtilen başvuru varlık.Sonuç kümeni içeren satırlar için başvurulan varlıkları Table1 ve Table2 ve tanımında başvurulan sütunları saklı yordam.null döndürülür dikkat edin column_name sütun tablolara başvuran satırlar.

USE AdventureWorks2008R2;
GO
CREATE TABLE dbo.Table1 (a int, b int, c int);
GO
CREATE TABLE dbo.Table2 (c1 int, c2 int);
GO
CREATE PROCEDURE dbo.Proc1 AS
    SELECT b, c FROM dbo.Table1;
    SELECT c2 FROM dbo.Table2;
GO
SELECT referenced_id, referenced_entity_name AS table_name, referenced_minor_name AS column_name
FROM sys.dm_sql_referenced_entities ('dbo.Proc1', 'OBJECT');
GO

Sonuç kümesi buradadır.

referenced_id, table_name,  column_name

-------------  -----------  -------------

151671588      Table1       NULL

151671588      Table1       b

151671588      Table1       c

2707154552     Table2       NULL

2707154552     Table2       c2

Sunucular arası ve veritabanları arası bağımlılıkları raporlama

Geçerli bir üç bölümlü adı kullanarak bir varlık başka bir varlığa başvuru yaptığında, veritabanları arası bağımlılık oluşturulur.varlık değeri aygıtınkiyle tam olarak geçerli bir ad kullanarak başka bir varlığa başvuru yaptığında sunucular arası başvurusu oluşturulur.Yalnızca adı açıkça belirtilmişse sunucu ve veritabanı adı kaydedilir.Örneğin olarak belirlenmiş, MyServer.MyDB.MySchema.MyTable, sunucu ve veritabanı adları kaydedilir; Ancak, olarak belirtildiğinde MyServer..MySchema.MyTable, yalnızca sunucu adı kaydedilir.Sunucular arası ve veritabanları arası bağımlılıkları izlenir hakkında daha fazla bilgi için bkz: SQL bağımlılıklar anlama.

Veritabanları arası ve sunucular arası bağımlılıkları kullanarak rapor edilen sys.sql_expression_dependencies or sys.dm_sql_referenced_entitites.

Aşağıdaki örnek, tüm veritabanları arası bağımlılıkları döndürür.Veritabanı ilk örnek oluşturur db1 ve veritabanlarındaki tablolara başvuran iki saklı yordamlar db2 ve db3.The sys.sql_expression_dependencies table is then queried to report the cross-database dependencies between the procedures and the tables.null döndürülür dikkat edin referenced_schema_name başvurulan varlık için sütun t3 çünkü bu varlığın tanımında, şema adı belirtilmediyordam.

CREATE DATABASE db1;
GO
USE db1;
GO
CREATE PROCEDURE p1 AS SELECT * FROM db2.s1.t1;
GO
CREATE PROCEDURE p2 AS
    UPDATE db3..t3
    SET c1 = c1 + 1;
GO
SELECT OBJECT_NAME (referencing_id),referenced_database_name, 
    referenced_schema_name, referenced_entity_name
FROM sys.sql_expression_dependencies
WHERE referenced_database_name IS NOT NULL;
GO
USE master;
GO
DROP DATABASE db1;
GO

Raporlama arayan bağımlı başvuruları

Arayan bağımlı başvurusu, başvurulan varlık şema cilt payı çalışma zamanında gerçekleşir anlamına gelir saat; Bu nedenle, arayan varsayılan şema üzerinde varlık kimliği çözünürlüğüne bağlıdır.Bu yaygın olarak adlandırılır dinamik şema bağlama ve başvurulan varlık bir saklı yordam, genişletilmiş saklı yordam olan veya olmayan-şemaya bağlı kullanıcı tanımlı bir işlev adı verilen bir execute deyim içinde bir şema adı belirtilmeden oluşur.Örneğin, bir varlık biçiminde bir başvuru EXECUTE MySchema.MyProc arayan bağımlı; yok olan Ancak, biçim başvurusunda EXECUTE MyProc İş arayan bağımlı.

Başvuruda bulunulan modül çalıştırıldığında arayan bağımlı başvuruları beklenmeyen davranışlara neden olabilir.Örneğin, bir yordam tek parça ad kullanarak başvuruda aşağıdaki saklı yordam göz önünde bulundurun.

CREATE PROCEDURE dbo.Proc1
AS EXECUTE dbo.Proc2;
GO

Zaman Proc1 yürütüldüğünde, Proc2 bağlar şemasına arayan.Varsayalım, Proc1 tarafından yürütüleceği User1, varsayılan şeması, kimlerin S1 tarafından yürütülen ve User2, varsayılan şeması, kimlerin S2.Zaman Proc1 tarafından yürütüldüğünde User1, başvurulan varlık çözümler için S1.Proc2.Zaman Proc1 tarafından yürütüldüğünde User2, başvurulan varlık çözümler için S2.Proc2.Bu davranış, kimliği nedeniyle Proc2 kadar çözümlenemeyen Proc1 gerçekleştirilir; Bu nedenle is_caller_dependent sütun 1 olarak küme sys.sql_expression_dependencies görünümü ve sys.dm_sql_referenced_entities işlev.Zaman Proc1 yürütülür, Veritabanı Altyapısı görüneceğini başvurulan varlık için Proc2 varsayılan şema arayan.Bulunmazsa, dbo şema denetlenir.If Proc2 cannot be found in the dbo schema, the ID of Proc2 cannot be resolved and the statement fails.Olası uygulama hataları ortadan kaldırmak için veritabanı varlıkları başvururken iki parça adlarını belirtme öneririz.

Aşağıdaki örnek, geçerli veritabanında arayan bağımlı başvurusu içeren her varlık verir.

SELECT OBJECT_NAME(referencing_id) AS referencing_entity, referenced_database_name, 
    referenced_schema_name, referenced_entity_name, referenced_id 
FROM sys.sql_expression_dependencies
WHERE is_caller_dependent = 1;

Belirtilen bir udt kullanın varlıklar üzerinde raporlama

Aşağıdaki örnek, kendi tanımında belirtilen tür başvurular geçerli veritabanında her varlık verir.sonuç küme Gösteren iki saklı yordamda bu türü kullanın.Türü de birkaç sütun tanımında kullanılan HumanResources.Employee tablo; Ancak, tür tanımında, hesaplanan sütun, denetim kısıtlamasını veya tablosundaki varsayılan kısıtlama olmadığı için hiçbir satır tablo için döndürülür.

USE AdventureWorks2008R2;
GO
SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent
FROM sys.dm_sql_referencing_entities ('dbo.Flag', 'TYPE');
GO

Sunucu düzeyinde ddl tetikleyici bağımlılıkları raporlama

Sunucu düzeyinde ddl tetikleyici bağımlılıkları kullanarak rapor sys.sql_expression_dependencies ve sys.dm_sql_referencing_entities sadece içerik ise küme için master veritabanı.Kullanırken sys.dm_sql_referenced_entities işlev tüm veritabanı. içerik olabilir

The following example queries the sys.sql_expression_dependenciesview to report on server-level DDL trigger dependencies.

USE master;
GO
SELECT OBJECT_NAME(referencing_id) AS referencing_entity, referencing_class_desc, referenced_server_name, referenced_database_name, referenced_schema_name, referenced_entity_name, referenced_id
FROM sys.sql_expression_dependencies
WHERE referencing_class = 13;