2009-11-17 45 views

回答

1

SSMS依靠SMO來提取依賴關係。 DependencyWalker類,即。您可以將其封裝在您的代碼中,並且SMO還可以使用Scripter類編寫對象定義的腳本(這也是SSMS用來腳本化對象定義的對象)。

6

首先,你可以試試這個鏈接Understanding SQL Dependencies

其次,你有多種選擇來檢查使用sql_expression_dependencies表,看看X的Y上的依賴關係,運行以下查詢的相關性

SELECT * 
FROM sys.sql_expression_dependencies 
WHERE referencing_id = OBJECT_ID('X') 
    AND referenced_id = OBJECT_ID('Y') 
    AND referenced_schema_name = 'dbo' 
    AND referenced_entity_name = 'Y' 
    AND referenced_database_name IS NULL 
    AND referenced_server_name IS NULL; 

使用syscomments表,SQL Server的syscomments表中存儲的每個視圖,規則,缺省值,觸發器,CHECK和DEFAULT約束,並在數據庫中存儲過程的原始SQL定義語句。這是很多信息!您可以查詢該表列出以下表格

SELECT * 
FROM syscomments 
INNER JOIN sysobjects sysobj ON syscomments.id = sysobj.id 
WHERE charindex('your object to check', text) > 0 

使用sp_depends存儲過程,至極顯示有關數據庫對象依賴性的信息,例如使用SQL語句依賴的對象:依賴於表的視圖和過程或視圖,以及視圖或程序所依賴的表格和視圖

EXEC sp_depends @objname = N'your object to check' 
+0

很好的答案。謝謝。幾年後有用。 – 2013-10-08 21:34:46