Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric
Ambarı'nda SQL analiz uç noktası
Geçerli veritabanındaki kullanıcı tanımlı bir varlığa her ada göre bağımlılık için bir satır içerir. Bu, yerel olarak derlenmiş, skaler kullanıcı tanımlı işlevler ve diğer SQL Server modülleri arasındaki bağımlılıkları içerir.
Daha fazla bilgi için bkz. In-Memory OLTPiçin Skaler User-Defined İşlevleri
Aşağıdaki varlıklara yönelik bağımlılık bilgilerini raporlamak için bu katalog görünümünü kullanabilirsiniz:
Şemaya bağlı varlıklar.
Şemaya bağlı olmayan varlıklar.
Veritabanları arası ve sunucular arası varlıklar. Varlık adları bildirilir; ancak varlık kimlikleri çözümlenmez.
Şemaya bağlı varlıklardaki sütun düzeyinde bağımlılıklar. Şemaya bağlı olmayan nesneler için sütun düzeyinde bağımlılıklar sys.dm_sql_referenced_entitieskullanılarak döndürülebilir.
Sunucu düzeyinde DDL, ana veritabanı bağlamında olduğunda tetikler.
| Sütun adı | Veri tipi | Açıklama |
|---|---|---|
| referencing_id | int | Başvuran varlığın kimliği. Null değer atanamaz. |
| referencing_minor_id | int | Başvuran varlık bir sütun olduğunda sütun kimliği; aksi takdirde 0. Null değer atanamaz. |
| referencing_class | tinyint | Başvuran varlığın sınıfı. 1 = Nesne veya sütun 12 = Veritabanı DDL tetikleyicisi 13 = Sunucu DDL tetikleyicisi Null değer atanamaz. |
| referencing_class_desc | nvarchar(60) | Başvuran varlık sınıfının açıklaması. OBJECT_OR_COLUMN DATABASE_DDL_TRIGGER SERVER_DDL_TRIGGER Null değer atanamaz. |
| is_schema_bound_reference | bit | 1 = Başvuruda bulunılan varlık şemaya bağlıdır. 0 = Başvurulan varlık şemaya bağlı değil. Null değer atanamaz. |
| referenced_class | tinyint | Başvuruda bulunılan varlığın sınıfı. 1 = Nesne veya sütun 6 = Tür 10 = XML şema koleksiyonu 21 = Bölüm işlevi Null değer atanamaz. |
| referenced_class_desc | nvarchar(60) | Başvuruda bulunılan varlığın sınıfının açıklaması. OBJECT_OR_COLUMN TÜR XML_SCHEMA_COLLECTION PARTITION_FUNCTION Null değer atanamaz. |
| referenced_server_name | sysname |
Başvuruda bulunılan varlığın sunucusunun adı. Bu sütun, geçerli bir dört bölümlü ad belirtilerek yapılan sunucular arası bağımlılıklar için doldurulur. Çok bölümlü adlar hakkında bilgi için bkz. Dört parçalı bir ad belirtilmeden varlığa başvurulan şemaya bağlı olmayan varlıklar için NULL. Aynı veritabanında olmaları gerektiğinden ve bu nedenle yalnızca iki parçalı (schema.object) adı kullanılarak tanımlanabilir olduğundan şemaya bağlı varlıklar için NULL. |
| referenced_database_name | sysname |
Başvuruda bulunılan varlığın veritabanının adı. Bu sütun, geçerli bir üç bölümlü veya dört parçalı ad belirtilerek yapılan veritabanları arası veya sunucular arası başvurular için doldurulur. Tek parçalı veya iki parçalı bir ad kullanılarak belirtildiğinde şemaya bağlı olmayan başvurular için NULL. Aynı veritabanında olmaları gerektiğinden ve bu nedenle yalnızca iki parçalı (schema.object) adı kullanılarak tanımlanabilir olduğundan şemaya bağlı varlıklar için NULL. |
| referenced_schema_name | sysname |
Başvurulan varlığın ait olduğu şema. Şema adı belirtilmeden varlığa başvurulan şemaya bağlı olmayan başvurular için NULL. Şemaya bağlı varlıkların iki parçalı bir ad kullanılarak tanımlanması ve başvurulması gerektiğinden, şemaya bağlı başvurular için hiçbir zaman NULL olmaz. |
| referenced_entity_name | sysname |
Başvuruda bulunılan varlığın adı. Null değer atanamaz. |
| referenced_id | int | Başvuruda bulunılan varlığın kimliği. Şemaya bağlı başvurular için bu sütunun değeri hiçbir zaman NULL değildir. Bu sütunun değeri, sunucular arası ve veritabanları arası başvurular için her zaman NULL'tır. Kimlik belirlenemiyorsa veritabanı içindeki başvurular için NULL. Şemaya bağlı olmayan başvurular için kimlik aşağıdaki durumlarda çözümlenemez: Başvuruda bulunılan varlık veritabanında yok. Başvuruda bulunulan varlığın şeması, çağıranın şemasına bağlıdır ve çalışma zamanında çözümlenir. Bu durumda, is_caller_dependent 1 olarak ayarlanır. |
| referenced_minor_id | int | Başvuran varlık bir sütun olduğunda başvuruda bulunılan sütunun kimliği; aksi takdirde 0. Null değer atanamaz. Başvuruda bulunılan varlık, başvuruda bulunan varlıkta bir sütun ada göre tanımlandığında veya üst varlık select * deyiminde kullanıldığında bir sütundur. |
| is_caller_dependent | bit | Başvuruda bulunılan varlık için şema bağlamasının çalışma zamanında gerçekleştiğini gösterir; bu nedenle, varlık kimliğinin çözümü çağıranın şemasına bağlıdır. Başvurulan varlık bir saklı yordam, genişletilmiş saklı yordam veya EXECUTE deyiminde çağrılan şemaya bağlı olmayan kullanıcı tanımlı bir işlev olduğunda bu durum oluşur. 1 = Başvuruda bulunulan varlık çağıran bağımlıdır ve çalışma zamanında çözümlenir. Bu durumda referenced_id NULL olur. 0 = Başvuruda bulunılan varlık kimliği çağıran bağımlı değildir. Şemaya bağlı başvurular için ve açıkça bir şema adı belirten veritabanları arası ve sunucular arası başvurular için her zaman 0. Örneğin, EXEC MyDatabase.MySchema.MyProc biçimindeki bir varlığa başvuru, çağırana bağımlı değildir. Ancak, EXEC MyDatabase..MyProc biçimindeki bir başvuru çağırana bağımlıdır. |
| is_ambiguous | bit | Başvurunun belirsiz olduğunu ve çalışma zamanında kullanıcı tanımlı bir işleve, kullanıcı tanımlı türe (UDT) veya xml Örneğin, SELECT Sales.GetOrder() FROM Sales.MySales deyiminin bir saklı yordamda tanımlandığını varsayalım. Saklı yordam yürütülene kadar, Sales.GetOrder()GetOrder()adlı bir yöntemle UDT türünde Sales adlı Sales şemasında veya sütununda kullanıcı tanımlı bir işlev olup olmadığı bilinmez.1 = Başvuru belirsiz. 0 = Başvuru belirsizdir veya görünüm çağrıldığında varlık başarıyla bağlanabilir. Şema bağlı başvuruları için her zaman 0. |
Açıklamalar
Aşağıdaki tabloda, bağımlılık bilgilerinin oluşturulduğu ve korundığı varlık türleri listelenmiştir. Kurallar, varsayılanlar, geçici tablolar, geçici saklı yordamlar veya sistem nesneleri için bağımlılık bilgileri oluşturulmaz veya korunmaz.
Not
Azure Synapse Analytics ve Paralel Veri Ambarı bu listeden tabloları, görünümleri, filtrelenmiş istatistikleri ve Transact-SQL saklı yordam varlık türlerini destekler. Bağımlılık bilgileri yalnızca tablolar, görünümler ve filtrelenmiş istatistikler için oluşturulur ve korunur.
| Varlık türü | Varlık başvuruyor | Başvuruda bulunılan varlık |
|---|---|---|
| Masa | Evet* | Evet |
| Görünüm | Evet | Evet |
| Filtrelenmiş dizin | Evet** | Hayır |
| Filtrelenmiş istatistikler | Evet** | Hayır |
| Transact-SQL saklı yordam** | Evet | Evet |
| CLR saklı yordamı | Hayır | Evet |
| Kullanıcı tanımlı işlevi Transact-SQL | Evet | Evet |
| CLR kullanıcı tanımlı işlevi | Hayır | Evet |
| CLR tetikleyicisi (DML ve DDL) | Hayır | Hayır |
| DML tetikleyicisi Transact-SQL | Evet | Hayır |
| veritabanı düzeyinde DDL tetikleyicisi Transact-SQL | Evet | Hayır |
| sunucu düzeyinde DDL tetikleyicisi Transact-SQL | Evet | Hayır |
| Genişletilmiş saklı yordamlar | Hayır | Evet |
| Sıra | Hayır | Evet |
| Eşanlamlı | Hayır | Evet |
| Tür (diğer ad ve CLR kullanıcı tanımlı tür) | Hayır | Evet |
| XML şema koleksiyonu | Hayır | Evet |
| Partition işlevi | Hayır | Evet |
* Tablo yalnızca hesaplanan sütun, CHECK kısıtlaması veya DEFAULT kısıtlaması tanımında bir Transact-SQL modülüne, kullanıcı tanımlı türe veya XML şema koleksiyonuna başvurduğunda başvuran varlık olarak izlenir.
** Filtre koşulunda kullanılan her sütun, başvuran varlık olarak izlenir.
1'den büyük bir tamsayı değerine sahip numaralandırılmış saklı yordamlar, başvuran veya başvurulan varlık olarak izlenmez.
İzinler
Veritabanında VIEW DEFINITION izni ve veritabanı için sys.sql_expression_dependencies üzerinde SELECT izni gerektirir. Varsayılan olarak, SELECT izni yalnızca db_owner sabit veritabanı rolünün üyelerine verilir. SELECT ve VIEW DEFINITION izinleri başka bir kullanıcıya verildiğinde, veren veritabanındaki tüm bağımlılıkları görüntüleyebilir.
Örnekler
A. Başka bir varlık tarafından başvuruda bulunulan varlıkları döndürme
Aşağıdaki örnek, Production.vProductAndDescriptiongörünümde başvuruda bulunan tabloları ve sütunları döndürür. Görünüm, referenced_entity_name ve referenced_column_name sütunlarında döndürülen varlıklara (tablolar ve sütunlar) bağlıdır.
USE AdventureWorks2022;
GO
SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_description,
COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,
referencing_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_name,
is_caller_dependent, is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
WHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription');
GO
B. Başka bir varlığa başvuran varlıkları döndürme
Aşağıdaki örnek, Production.Producttabloya başvuran varlıkları döndürür.
referencing_entity_name sütununda döndürülen varlıklar Product tablosuna bağlıdır.
USE AdventureWorks2022;
GO
SELECT OBJECT_SCHEMA_NAME ( referencing_id ) AS referencing_schema_name,
OBJECT_NAME(referencing_id) AS referencing_entity_name,
o.type_desc AS referencing_description,
COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id,
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_name,
is_caller_dependent, is_ambiguous
FROM sys.sql_expression_dependencies AS sed
INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id
WHERE referenced_id = OBJECT_ID(N'Production.Product');
GO
C. Veritabanları arası bağımlılıkları döndürme
Aşağıdaki örnek tüm veritabanları arası bağımlılıkları döndürür. Örnek ilk olarak veritabanı db1 ve db2 ve db3veritabanlarındaki tablolara başvuran iki saklı yordam oluşturur. daha sonra sys.sql_expression_dependencies tablosu, yordamlar ve tablolar arasındaki veritabanları arası bağımlılıkları raporlamak için sorgulanır. Başvuruda bulunulan varlık t3 için referenced_schema_name sütununda NULL döndürüldüğünü, çünkü yordamın tanımında bu varlık için bir şema adı belirtilmediğinden dikkat edin.
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
Ayrıca Bkz.
sys.dm_sql_referenced_entities (Transact-SQL)
sys.dm_sql_referencing_entities (Transact-SQL)