Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitikai Platform System (PDW)
SQL adatbázis a Microsoft Fabric-ben
Ez a témakör azt ismerteti, hogyan tekintheti meg az SQL Server tárolt eljárásfüggőségeit az SQL Server Management Studio vagy a Transact-SQL használatával.
Kezdés előtt:Korlátozások és korlátozások, Biztonsági
Az eljárás függőségeinek megtekintéséhez használja a következőt:SQL Server Management Studio, Transact-SQL
Mielőtt hozzákezdene
Korlátozások és korlátozások
Biztonság
Permissions
Rendszerfüggvény: sys.dm_sql_referencing_entities
CONTROL engedélyt igényel a hivatkozott entitáson, és a sys.dm_sql_referencing_entities esetében SELECT engedélyt. Ha a hivatkozott entitás egy partíciófüggvény, control engedélyre van szükség az adatbázisban. Alapértelmezés szerint a SELECT engedély nyilvános.
Rendszerfüggvény: sys.dm_sql_referenced_entities
SELECT engedélyre van szükség a sys.dm_sql_referenced_entities-hez és VIEW DEFINITION engedélyre a hivatkozó entitáson. Alapértelmezés szerint a SELECT engedély nyilvános. View DEFINITION-engedély szükséges az adatbázishoz vagy az ALTER DATABASE DDL TRIGGER engedélyéhez az adatbázisban, ha a hivatkozási entitás adatbázisszintű DDL-eseményindító. A VIEW ANY DEFINITION engedélyre van szükség a kiszolgálón, ha a hivatkozási entitás kiszolgálószintű DDL-trigger.
Objektumkatalógus nézet: sys.sql_expression_dependencies
A VIEW DEFINITION engedélyre van szükség az adatbázison, és SELECT engedélyt kell kérni az adatbázis sys.sql_expression_dependencies szolgáltatásához. Alapértelmezés szerint a SELECT engedély csak a db_owner rögzített adatbázis-szerepkör tagjai számára van megadva. Ha a SELECT és a VIEW DEFINITION engedélyeket egy másik felhasználó kapja meg, a jogosult megtekintheti az adatbázis összes függőségét.
Tárolt eljárás függőségeinek megtekintése
Az alábbiak egyikét használhatja:
Az SQL Server Management Studio használata
Egy eljárás függőségeinek megtekintése az Object Explorerben
Az Object Explorerben csatlakozzon az adatbázismotor egy példányához, majd bontsa ki a példányt.
Bontsa ki Adatbázisok, bontsa ki azt az adatbázist, amelyhez az eljárás tartozik, majd bontsa ki Programozhatósági.
Bontsa ki tárolt eljárások, kattintson a jobb gombbal az eljárásra, majd kattintson Függőségek megtekintéseparancsra.
Tekintse meg az eljárástól függő objektumok listáját.
Megtekintheti azoknak az objektumoknak a listáját, amelyektől az eljárás függ.
Kattintson az OK gombra.
Transact-SQL használata
A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.
Egy eljárás függőségeinek megtekintése a Lekérdezésszerkesztőben
Rendszerfüggvény: sys.dm_sql_referencing_entities
Ez a függvény az eljárástól függő objektumok megjelenítésére szolgál.
Object Explorer-ben csatlakozzon egy adatbázismotor példányhoz, majd bontsa ki azt a példányt.
Bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amelyhez az eljárás tartozik.
Kattintson az Új lekérdezés elemre a Fájl menüben.
Másolja és illessze be a következő példákat a lekérdezésszerkesztőbe. Az első példa létrehozza a
uspVendorAllInfoeljárást, amely visszaadja az Adventure Works Cycles adatbázis összes szállítójának nevét, az általuk megadott termékeket, a hitelképességüket és a rendelkezésre állásukat.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; GOAz eljárás létrehozása után a második példa a sys.dm_sql_referencing_entities függvénnyel jeleníti meg az eljárástól függő objektumokat.
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
Rendszerfüggvény: sys.dm_sql_referenced_entities
Ez a függvény azon objektumok megjelenítésére szolgál, amelyektől az eljárás függ.
Object Explorer-ben csatlakozzon egy adatbázismotor példányhoz, majd bontsa ki azt a példányt.
Bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amelyhez az eljárás tartozik.
Kattintson az Új lekérdezés elemre a Fájl menüben.
Másolja és illessze be a következő példákat a lekérdezésszerkesztőbe. Az első példa létrehozza a
uspVendorAllInfoeljárást, amely visszaadja az Adventure Works Cycles adatbázis összes szállítójának nevét, az általuk megadott termékeket, a hitelképességüket és a rendelkezésre állásukat.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; GOAz eljárás létrehozása után a második példa a sys.dm_sql_referenced_entities függvénnyel jeleníti meg azokat az objektumokat, amelyektől az eljárás függ.
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
Objektumkatalógus nézet: sys.sql_expression_dependencies
Ez a nézet olyan objektumok megjelenítésére használható, amelyektől egy eljárás függ, vagy amelyek egy eljárástól függenek.
Az eljárástól függő objektumok megjelenítése.
Object Explorer-ben csatlakozzon egy adatbázismotor példányhoz, majd bontsa ki azt a példányt.
Bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amelyhez az eljárás tartozik.
Kattintson az Új lekérdezés elemre a Fájl menüben.
Másolja és illessze be a következő példákat a lekérdezésszerkesztőbe. Az első példa létrehozza a
uspVendorAllInfoeljárást, amely visszaadja az Adventure Works Cycles adatbázis összes szállítójának nevét, az általuk megadott termékeket, a hitelképességüket és a rendelkezésre állásukat.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; GOAz eljárás létrehozása után a második példa a sys.sql_expression_dependencies nézetet használja az eljárástól függő objektumok megjelenítéséhez.
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
Az objektumok megjelenítésétől függ az eljárás.
Object Explorer-ben csatlakozzon egy adatbázismotor példányhoz, majd bontsa ki azt a példányt.
Bontsa ki Adatbázisok, majd bontsa ki azt az adatbázist, amelyhez az eljárás tartozik.
Kattintson az Új lekérdezés elemre a Fájl menüben.
Másolja és illessze be a következő példákat a lekérdezésszerkesztőbe. Az első példa létrehozza a
uspVendorAllInfoeljárást, amely visszaadja az Adventure Works Cycles adatbázis összes szállítójának nevét, az általuk megadott termékeket, a hitelképességüket és a rendelkezésre állásukat.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; GOAz eljárás létrehozása után a második példa a sys.sql_expression_dependencies nézet használatával jeleníti meg azokat az objektumokat, amelyektől az eljárás függ.
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
Lásd még:
tárolt eljárás átnevezése
sys.dm_sql_referencing_entities (Transact-SQL)
sys.dm_sql_referenced_entities (Transact-SQL)
sys.sql_expression_dependencies (Transact-SQL)