Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Managed Instance
Azure Synapse Analytics Platform System (PDW)
SQL di Microsoft Fabric
Warehouse di Microsoft Fabric
Berisi satu baris untuk setiap dependensi berdasarkan nama pada entitas yang ditentukan pengguna dalam database saat ini. Ini termasuk dependensi antara fungsi yang dikompilasi secara asli, skalar yang ditentukan pengguna dan modul SQL Server lainnya. Dependensi antara dua entitas dibuat ketika satu entitas, yang disebut entitas yang direferensikan, muncul berdasarkan nama dalam ekspresi SQL yang bertahan dari entitas lain, yang disebut entitas referensi. Misalnya, ketika tabel dirujuk dalam definisi tampilan, tampilan, sebagai entitas referensi, tergantung pada tabel, entitas yang dirujuk. Jika tabel dihilangkan, tampilan tidak dapat digunakan.
Untuk informasi selengkapnya, lihat Fungsi Yang Ditentukan Pengguna Skalar untuk OLTP Dalam Memori.
Anda dapat menggunakan tampilan katalog ini untuk melaporkan informasi dependensi untuk entitas berikut:
Entitas yang terikat skema.
Entitas yang tidak terikat skema.
Entitas lintas database dan lintas server. Nama entitas dilaporkan; namun, ID entitas tidak diselesaikan.
Dependensi tingkat kolom pada entitas yang terikat skema. Dependensi tingkat kolom untuk objek yang tidak terikat skema dapat dikembalikan dengan menggunakan sys.dm_sql_referenced_entities.
DDL tingkat server dipicu saat dalam konteks
masterdatabase.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
referencing_id |
int | ID entitas referensi. Tidak dapat diubah ke null. |
referencing_minor_id |
int | ID Kolom saat entitas referensi adalah kolom; jika tidak, 0. Tidak dapat diubah ke null. |
referencing_class |
kecil | Kelas entitas referensi.1 = Objek atau kolom12 = Pemicu DDL database13 = Pemicu DDL serverTidak dapat diubah ke null. |
referencing_class_desc |
nvarchar(60) | Deskripsi kelas entitas referensi.OBJECT_OR_COLUMNDATABASE_DDL_TRIGGERSERVER_DDL_TRIGGERTidak dapat diubah ke null. |
is_schema_bound_reference |
bit |
1 = Entitas yang direferensikan terikat skema.0 = Entitas yang direferensikan tidak terikat skema.Tidak dapat diubah ke null. |
referenced_class |
kecil | Kelas entitas yang dirujuk.1 = Objek atau kolom6 = Tipe7 = Indeks10 = Kumpulan skema XML21 = Fungsi partisiTidak dapat diubah ke null. |
referenced_class_desc |
nvarchar(60) | Deskripsi kelas entitas yang dirujuk.OBJECT_OR_COLUMNTYPEINDEXXML_SCHEMA_COLLECTIONPARTITION_FUNCTIONTidak dapat diubah ke null. |
referenced_server_name |
nama sysname | Nama server entitas yang dirujuk. Kolom ini diisi untuk dependensi lintas server yang dibuat dengan menentukan nama empat bagian yang valid. Untuk informasi tentang nama multipihak, lihat Konvensi sintaks transact-SQL. NULL untuk entitas yang tidak terikat skema yang entitasnya direferensikan tanpa menentukan nama empat bagian.NULL untuk entitas terikat skema karena harus berada dalam database yang sama dan oleh karena itu hanya dapat didefinisikan menggunakan nama dua bagian (schema.object). |
referenced_database_name |
nama sysname | Nama database entitas yang dirujuk. Kolom ini diisi untuk referensi lintas database atau lintas server yang dibuat dengan menentukan nama tiga bagian atau empat bagian yang valid. NULL untuk referensi yang tidak terikat skema saat ditentukan menggunakan nama satu bagian atau dua bagian.NULL untuk entitas terikat skema karena harus berada dalam database yang sama dan oleh karena itu hanya dapat didefinisikan menggunakan dua bagian (skema.objek). |
referenced_schema_name |
nama sysname | Skema tempat entitas yang dirujuk berada.NULL untuk referensi yang tidak terikat skema di mana entitas direferensikan tanpa menentukan nama skema.Tidak pernah NULL untuk referensi terikat skema karena entitas terikat skema harus ditentukan dan direferensikan dengan menggunakan nama dua bagian. |
referenced_entity_name |
nama sysname | Nama entitas yang dirujuk. Tidak dapat diubah ke null. |
referenced_id |
int | ID entitas yang dirujuk. Nilai kolom ini tidak pernah NULL untuk referensi terikat skema. Nilai kolom ini selalu NULL untuk referensi lintas server dan lintas database.NULL untuk referensi dalam database jika ID tidak dapat ditentukan. Untuk referensi yang tidak terikat skema, ID tidak dapat diselesaikan dalam kasus berikut:Entitas yang direferensikan tidak ada di database. Skema entitas yang dirujuk tergantung pada skema pemanggil dan diselesaikan pada waktu proses. Dalam hal ini, is_caller_dependent diatur ke 1. |
referenced_minor_id |
int | ID kolom yang dirujuk saat entitas referensi adalah kolom; jika tidak, 0. Tidak dapat diubah ke null. Entitas yang direferensikan adalah kolom ketika kolom diidentifikasi berdasarkan nama di entitas referensi, atau ketika entitas induk digunakan dalam pernyataan SELECT * . |
is_caller_dependent |
bit | Menunjukkan bahwa pengikatan skema untuk entitas yang dirujuk terjadi pada runtime; oleh karena itu, resolusi ID entitas tergantung pada skema pemanggil. Ini terjadi ketika entitas yang direferensikan adalah prosedur tersimpan, prosedur tersimpan yang diperluas, atau fungsi yang ditentukan pengguna yang tidak terikat skema yang disebut dalam pernyataan EXECUTE.1 = Entitas yang direferensikan bergantung pada pemanggil dan diselesaikan pada runtime. Dalam hal ini, referenced_id adalah NULL.0 = ID entitas yang direferensikan tidak bergantung pada pemanggil.Selalu 0 untuk referensi terikat skema dan untuk referensi lintas database dan lintas server yang secara eksplisit menentukan nama skema. Misalnya, referensi ke entitas dalam format EXEC MyDatabase.MySchema.MyProc tidak bergantung pada pemanggil. Namun, referensi dalam format EXEC MyDatabase..MyProc adalah dependen penelepon. |
is_ambiguous |
bit | Menunjukkan referensi ambigu dan dapat diselesaikan pada waktu proses ke fungsi yang ditentukan pengguna, jenis yang ditentukan pengguna (UDT), atau referensi XQuery ke kolom jenis xml. Misalnya, asumsikan bahwa pernyataan SELECT Sales.GetOrder() FROM Sales.MySales ditentukan dalam prosedur tersimpan. Hingga prosedur tersimpan dijalankan, tidak diketahui apakah Sales.GetOrder() fungsi yang ditentukan pengguna dalam Sales skema atau kolom bernama Sales jenis UDT dengan metode bernama GetOrder().1 = Referensi ambigu.0 = Referensi tidak ambigu atau entitas dapat berhasil diikat saat tampilan dipanggil.Selalu 0 untuk referensi terikat skema. |
Keterangan
Tabel berikut mencantumkan jenis entitas yang informasi dependensinya dibuat dan dikelola. Informasi dependensi tidak dibuat atau dikelola untuk aturan, default, tabel sementara, prosedur tersimpan sementara, atau objek sistem.
Catatan
Azure Synapse Analytics dan Gudang Data Paralel mendukung tabel, tampilan, statistik yang difilter, dan jenis entitas prosedur tersimpan Transact-SQL dari daftar ini. Informasi dependensi dibuat dan dikelola hanya untuk tabel, tampilan, dan statistik yang difilter.
| Jenis entitas | Entitas referensi | Entitas yang dirujuk |
|---|---|---|
| Tabel | Yes1 | Ya |
| Tampilan | Ya | Ya |
| Indeks yang difilter | Ya2 | No |
| Statistik yang difilter | Ya2 | No |
| Transact-SQL prosedur tersimpan3 | Ya | Ya |
| Prosedur tersimpan CLR | No | Ya |
| Fungsi yang ditentukan pengguna Transact-SQL | Ya | Ya |
| Fungsi yang ditentukan pengguna CLR | No | Ya |
| Pemicu CLR (DML dan DDL) | No | No |
| Pemicu DML T-SQL | Ya | No |
| Pemicu DDL tingkat database Transact-SQL | Ya | No |
| Pemicu DDL tingkat server Transact-SQL | Ya | No |
| Prosedur tersimpan diperpanjang | No | Ya |
| Antrean | No | Ya |
| Sinonim | No | Ya |
| Jenis (alias dan jenis yang ditentukan pengguna CLR) | No | Ya |
| Koleksi skema XML | No | Ya |
| Fungsi partisi | No | Ya |
1 Tabel dilacak sebagai entitas referensi hanya ketika mereferensikan modul Transact-SQL, jenis yang ditentukan pengguna, atau kumpulan skema XML dalam definisi kolom komputasi, batasan CHECK, atau DEFAULT batasan.
2 Setiap kolom yang digunakan dalam predikat filter dilacak sebagai entitas referensi.
3 Prosedur tersimpan bernomor dengan nilai bilangan bulat lebih besar dari 1 tidak dilacak sebagai entitas referensi atau referensi.
Izin
Memerlukan VIEW izin DEFINITION pada database dan izin SELECT aktif sys.sql_expression_dependencies untuk database. Secara default, izin SELECT hanya diberikan kepada anggota peran database tetap db_owner . Ketika izin SELECT dan VIEW DEFINITION diberikan kepada pengguna lain, penerima hibah dapat melihat semua dependensi dalam database.
Contoh
J. Mengembalikan entitas yang direferensikan oleh entitas lain
Contoh berikut mengembalikan tabel dan kolom yang dirujuk dalam tampilan Production.vProductAndDescription. Tampilan bergantung pada entitas (tabel dan kolom) yang dikembalikan dalam referenced_entity_name kolom dan referenced_column_name .
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');
B. Mengembalikan entitas yang mereferensikan entitas lain
Contoh berikut mengembalikan entitas yang mereferensikan tabel Production.Product. Entitas yang referencing_entity_name dikembalikan dalam kolom bergantung pada Product tabel.
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');
C. Mengembalikan dependensi lintas database
Contoh berikut mengembalikan semua dependensi lintas database. Contoh pertama-tama membuat database db1 dan dua prosedur tersimpan yang mereferensikan tabel dalam database db2 dan db3. Tabel sys.sql_expression_dependencies kemudian dikueri untuk melaporkan dependensi lintas database antara prosedur dan tabel.
NULL dikembalikan dalam referenced_schema_name kolom untuk entitas t3 yang direferensikan karena nama skema tidak ditentukan untuk entitas tersebut dalam definisi prosedur.
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;