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:SQL Server
Database Azure
SQLInstans
Terkelola Azure SQLAzure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Topik ini menjelaskan cara melihat dependensi prosedur tersimpan di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL.
Sebelum Anda memulai:Batasan dan Pembatasan, Keamanan
Untuk melihat dependensi prosedur, menggunakan:SQL Server Management Studio, Transact-SQL
Sebelum Anda mulai
Batasan dan Pembatasan
Keamanan
Permissions
Fungsi Sistem: sys.dm_sql_referencing_entities
Memerlukan izin CONTROL pada entitas yang dirujuk dan izin SELECT pada sys.dm_sql_referencing_entities. Ketika entitas yang dirujuk adalah fungsi partisi, izin CONTROL pada database diperlukan. Secara default, izin SELECT diberikan kepada publik.
Fungsi Sistem: sys.dm_sql_referenced_entities
Memerlukan izin SELECT pada sys.dm_sql_referenced_entities dan izin VIEW DEFINITION pada entitas yang dirujuk. Secara default, izin SELECT diberikan kepada publik. Memerlukan izin LIHAT DEFINISI pada database atau izin UBAH PEMICU DDL DATABASE pada database saat entitas referensi adalah pemicu DDL tingkat database. Memerlukan izin LIHAT DEFINISI APA PUN di server saat entitas referensi adalah pemicu DDL tingkat server.
Tampilan Katalog Objek: sys.sql_expression_dependencies
Memerlukan izin LIHAT DEFINISI pada basis data dan izin SELECT pada sys.sql_expression_dependencies untuk basis data tersebut. Secara default, izin SELECT hanya diberikan kepada anggota peran database tetap db_owner. Saat izin SELECT dan VIEW DEFINITION diberikan kepada pengguna lain, penerima hibah dapat melihat semua dependensi dalam database.
Cara Melihat Dependensi Prosedur Tersimpan
Anda bisa menggunakan salah satu hal berikut ini:
Menggunakan SQL Server Management Studio
Untuk melihat dependensi prosedur di Object Explorer
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas database tempat prosedur berada, lalu perluas Programmability.
Perluas Prosedur Tersimpan, klik kanan prosedur lalu klik Tampilkan Dependensi.
Lihat daftar objek yang bergantung pada prosedur.
Lihat daftar objek yang bergantung pada prosedur.
Klik OK.
Menggunakan T-SQL
Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.
Untuk melihat dependensi prosedur di Editor Kueri
Fungsi Sistem: sys.dm_sql_referencing_entities
Fungsi ini digunakan untuk menampilkan objek yang bergantung pada prosedur.
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas database tempat prosedur berada.
Klik pada Kueri Baru di bawah menu File.
Salin dan tempel contoh berikut ke editor kueri. Contoh pertama membuat
uspVendorAllInfoprosedur, yang mengembalikan nama semua vendor dalam database Adventure Works Cycles, produk yang mereka berikan, peringkat kredit mereka, dan ketersediaannya.USE AdventureWorks2022; GO IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GOSetelah prosedur dibuat, contoh kedua menggunakan fungsi sys.dm_sql_referencing_entities untuk menampilkan objek yang bergantung pada prosedur.
USE AdventureWorks2022; GO SELECT referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent FROM sys.dm_sql_referencing_entities ('Purchasing.uspVendorAllInfo', 'OBJECT'); GO
Fungsi Sistem: sys.dm_sql_referenced_entities
Fungsi ini digunakan untuk menampilkan objek yang bergantung pada prosedur.
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas database tempat prosedur berada.
Klik pada Kueri Baru di bawah menu File.
Salin dan tempel contoh berikut ke editor kueri. Contoh pertama membuat
uspVendorAllInfoprosedur, yang mengembalikan nama semua vendor dalam database Adventure Works Cycles, produk yang mereka berikan, peringkat kredit mereka, dan ketersediaannya.USE AdventureWorks2022; GO IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GOSetelah prosedur dibuat, contoh kedua menggunakan fungsi sys.dm_sql_referenced_entities untuk menampilkan objek yang bergantung pada prosedur.
USE AdventureWorks2022; GO SELECT referenced_schema_name, referenced_entity_name, referenced_minor_name,referenced_minor_id, referenced_class_desc, is_caller_dependent, is_ambiguous FROM sys.dm_sql_referenced_entities ('Purchasing.uspVendorAllInfo', 'OBJECT'); GO
Tampilan Katalog Objek: sys.sql_expression_dependencies
Tampilan ini dapat digunakan untuk menampilkan objek yang bergantung pada prosedur atau yang bergantung pada prosedur.
Menampilkan objek yang bergantung pada prosedur.
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas database tempat prosedur berada.
Klik pada Kueri Baru di bawah menu File.
Salin dan tempel contoh berikut ke editor kueri. Contoh pertama membuat
uspVendorAllInfoprosedur, yang mengembalikan nama semua vendor dalam database Adventure Works Cycles, produk yang mereka berikan, peringkat kredit mereka, dan ketersediaannya.USE AdventureWorks2022; GO IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GOSetelah prosedur dibuat, contoh kedua menggunakan tampilan sys.sql_expression_dependencies untuk menampilkan objek yang bergantung pada prosedur.
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'Purchasing.uspVendorAllInfo') GO
Menampilkan objek yang menjadi ketergantungan sebuah prosedur.
Di Object Explorer, sambungkan ke instans Mesin Database lalu perluas instans tersebut.
Perluas Database, perluas database tempat prosedur berada.
Klik pada Kueri Baru di bawah menu File.
Salin dan tempel contoh berikut ke editor kueri. Contoh pertama membuat
uspVendorAllInfoprosedur, yang mengembalikan nama semua vendor dalam database Adventure Works Cycles, produk yang mereka berikan, peringkat kredit mereka, dan ketersediaannya.USE AdventureWorks2022; GO IF OBJECT_ID ( 'Purchasing.uspVendorAllInfo', 'P' ) IS NOT NULL DROP PROCEDURE Purchasing.uspVendorAllInfo; GO CREATE PROCEDURE Purchasing.uspVendorAllInfo WITH EXECUTE AS CALLER AS SET NOCOUNT ON; SELECT v.Name AS Vendor, p.Name AS 'Product name', v.CreditRating AS 'Rating', v.ActiveFlag AS Availability FROM Purchasing.Vendor v INNER JOIN Purchasing.ProductVendor pv ON v.BusinessEntityID = pv.BusinessEntityID INNER JOIN Production.Product p ON pv.ProductID = p.ProductID ORDER BY v.Name ASC; GOSetelah prosedur dibuat, contoh kedua menggunakan tampilan sys.sql_expression_dependencies untuk menampilkan objek yang bergantung pada prosedur.
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_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'Purchasing.uspVendorAllInfo'); GO
Lihat Juga
Mengganti nama Prosedur Tersimpan
sys.dm_sql_referencing_entities (T-SQL)
sys.dm_sql_referenced_entities (T-SQL)
sys.sql_expression_dependencies (Transact-SQL)