Share via


Saklı yordam bağımlılıkları görüntülemek

Bu konuda saklı yordam bağımlılıkları görüntülemek açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL.

  • Başlamadan önce: kısıtlamaları ve sınırlamaları, güvenlik 

  • Bir yordam bağımlılıkları görüntülemek için kullanma: SQL Server Management Studio'yu, Transact-sql, PowerShell 

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

[Üst]

Güvenlik

İzinler

[Üst]

  • Sistem işlevi:sys.dm_sql_referencing_entities
    Üzerinde DENETIM izni başvurulan varlık ve select izni gerektirir sys.dm_sql_referencing_entities. Bölüm işlevi başvurulan varlık ise, veritabanı üzerinde DENETIM izni gereklidir. Varsayılan olarak, için select izni verilir public.

  • Sistem işlevi:sys.dm_sql_referenced_entities
    Üzerinde select izni gerektirir sys.dm_sql_referenced_entitiesve başvuru varlık tanımını izni. Varsayılan olarak, için select izni verilir public. Başvuru varlık veritabanı düzeyinde ddl tetikleyici olduğunda veritabanı üzerinde görünüm tanımı izni veya veritabanı ddl TETIKLEYICI alter veritabanı izni gerektirir. Başvuru varlık sunucu düzeyinde ddl tetikleyici olduğunda sunucu üzerinde görünüm tanımı HIÇBIR izni gerektirir.

  • Nesne Kataloğu görüntüle:sys.sql_expression_dependencies
    Üzerinde görünüm tanımı izni veritabanında ve select izni gerektirir sys.sql_expression_dependenciesveritabanı için. Varsayılan olarak, yalnızca üyelerine select izni verilir db_ownerveritabanı rolü. SEÇTİĞİNİZDE ve VIEW DEFINITION izinlerinden grantee veritabanındaki tüm bağımlılıkları görebilirsiniz başka bir kullanıcıya verilir.

Nasıl bir saklı yordam bağımlılıkları görüntülemek için

Aşağıdakilerden birini kullanabilirsiniz:

  • SQL Server Management Studio

  • Transact-SQL

SQL Server Management Studio Kullanarak

Nesne Explorer'da bir yordam bağımlılıkları görüntülemek için

  1. Nesne Explorer'da örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.

  2. Genişletme veritabanları, hangi yordamı ait olduğu ve ardından veritabanı genişletin programlama.

  3. Genişletme Saklı yordamlar, yordamı sağ tıklatın ve ardından Bağımlılıklarını görüntüleme.

  4. Yordam bağımlı nesnelerin listesini görüntüleyin.

  5. Yordam bağımlı olduğu nesneleri listesini görüntüleyin.

  6. Click OK.

[Üst]

Transact-SQL'i Kullanma

Sorgu Düzenleyicisi'nde bir yordam bağımlılıkları görüntülemek için

  • Sistem işlevi:sys.dm_sql_referencing_entities
    Bu işlev, bir yordam bağımlı nesneleri görüntülemek için kullanılır.

    1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.

    2. Genişletme veritabanları, yordamı ait veritabanı genişletin.

    3. Tıklayın Yeni sorgu altında dosyasını menü.

    4. Kopyalama ve aşağıdaki örneklerde sorgu düzenleyicisine yapıştırın. İlk örnek oluşturur uspVendorAllInfotüm satıcıların adlarını döndürür yordamı, Adventure Works Cyclesveritabanı, onlar tedarik ürünleri, kendi kredi derecelendirme ve kullanılabilirliklerini.

      USE AdventureWorks2012;
      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;
      GO
      
    5. Yordam oluşturulduktan sonra ikinci örnek kullanır sys.dm_sql_referencing_entitiesİşlev yordamı bağımlı nesneleri görüntülemek için.

      USE AdventureWorks2012;
      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
      
  • Sistem işlevi:sys.dm_sql_referenced_entities
    Bu işlev, bir yordam bağlıdır nesneleri görüntülemek için kullanılır.

    1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.

    2. Genişletme veritabanları, yordamı ait veritabanı genişletin.

    3. Tıklayın Yeni sorgu altında dosyasını menü.

    4. Kopyalama ve aşağıdaki örneklerde sorgu düzenleyicisine yapıştırın. İlk örnek oluşturur uspVendorAllInfotüm satıcıların adlarını döndürür yordamı, Adventure Works Cyclesveritabanı, onlar tedarik ürünleri, kendi kredi derecelendirme ve kullanılabilirliklerini.

      USE AdventureWorks2012;
      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;
      GO
      
    5. Yordam oluşturulduktan sonra ikinci örnek kullanır sys.dm_sql_referenced_entitiesİşlev yordamı bağlıdır nesneleri görüntülemek için.

      USE AdventureWorks2012;
      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_referencing_entities ('Purchasing.uspVendorAllInfo', 'OBJECT');
      GO
      
  • Nesne Kataloğu görüntüle:sys.sql_expression_dependencies
    Bu görünüm, bir yordama bağlı ya da bağlı olan bir yordam nesneleri görüntülemek için kullanılabilir.

    • Bir yordam bağımlı nesneleri görüntüleme.

      1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.

      2. Genişletme veritabanları, yordamı ait veritabanı genişletin.

      3. Tıklayın Yeni sorgu altında dosyasını menü.

      4. Kopyalama ve aşağıdaki örneklerde sorgu düzenleyicisine yapıştırın. İlk örnek oluşturur uspVendorAllInfotüm satıcıların adlarını döndürür yordamı, Adventure Works Cyclesveritabanı, onlar tedarik ürünleri, kendi kredi derecelendirme ve kullanılabilirliklerini.

        USE AdventureWorks2012;
        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;
        GO
        
      5. Yordam oluşturulduktan sonra ikinci örnek kullanır sys.sql_expression_dependenciesyordam bağımlı nesneleri görüntülemek için görünümü.

        USE AdventureWorks2012;
        GO
        SELECT OBJECT_SCHEMA_NAME ( referencing_id ) AS referencing_schema_name,
            OBJECT_NAME(referencing_id) AS referencing_entity_name, 
            o.type_desc AS referencing_desciption, 
            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
        
    • Nesneleri görüntüleme bir yordam bağlıdır.

      1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısıve bu örneği genişletin.

      2. Genişletme veritabanları, yordamı ait veritabanı genişletin.

      3. Tıklayın Yeni sorgu altında dosyasını menü.

      4. Kopyalama ve aşağıdaki örneklerde sorgu düzenleyicisine yapıştırın. İlk örnek oluşturur uspVendorAllInfotüm satıcıların adlarını döndürür yordamı, Adventure Works Cyclesveritabanı, onlar tedarik ürünleri, kendi kredi derecelendirme ve kullanılabilirliklerini.

        USE AdventureWorks2012;
        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;
        GO
        
      5. Yordam oluşturulduktan sonra ikinci örnek kullanır sys.sql_expression_dependenciesyordam bağlıdır nesneleri görüntülemek için görünümü.

        USE AdventureWorks2012;
        GO
        SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, 
            o.type_desc AS referencing_desciption, 
            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
        

Ayrıca bkz.

Başvuru

sys.dm_sql_referencing_entities (Transact-sql)

sys.dm_sql_referenced_entities (Transact-sql)

c.sys.sql_expression_dependencies (Transact-sql)

Kavramlar

Saklı yordam yeniden adlandırma