分享方式:


sp_depends (Transact-SQL)

適用於:SQL Server

顯示資料庫物件相依性的相關信息,例如相依於數據表或檢視表的檢視和程式,以及檢視或程式相依的數據表和檢視表。 不會報告目前資料庫外部對象的參考。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 sys.dm_sql_referencing_entitiessys.dm_sql_referenced_entities

Transact-SQL 語法慣例

語法

sp_depends [ @objname = ] N'objname'

<objname> ::=
{
    [ database_name. [ schema_name ] . | schema_name. ]
    object_name
}

[ ; ]

引數

[ @objname = ] N'objname'

@objname為 nvarchar(776),沒有預設值。

  • database_name

    資料庫的名稱。

  • schema_name

    物件所屬之架構的名稱。

  • object_name

    要檢查相依性的資料庫物件。 物件可以是數據表、檢視表、預存程式、使用者定義函數或觸發程式。 object_name為 nvarchar(776),沒有預設值。

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

sp_depends 會顯示兩個結果集。

下列結果集顯示@objname相依的物件

資料行名稱 資料類型 描述
name nvarchar(257) 相依性所在的項目名稱。
type nvarchar(16) 項目的類型。
updated nvarchar(7) 指定專案是否已更新。
selected nvarchar(8) 指定專案是否在語句中使用 SELECT
column sysname 相依性所在的數據行或參數。

下列結果集顯示相依 於@objname的物件。

資料行名稱 資料類型 描述
name nvarchar(257) 相依性所在的項目名稱。
type nvarchar(16) 項目的類型。

權限

需要 public 角色的成員資格。

範例

A. 列出數據表的相依性

下列範例會列出相依於 Sales.Customer 資料庫中數據表 AdventureWorks2022 的資料庫物件。 同時指定架構名稱和數據表名稱。

USE AdventureWorks2022;
GO
EXEC sp_depends @objname = N'Sales.Customer';

B. 列出觸發程式上的相依性

下列範例會列出觸發程式 iWorkOrder 相依的資料庫物件。

EXEC sp_depends @objname = N'AdventureWorks2022.Production.iWorkOrder';