2017-08-16 88 views
1

我在大量服務器/數據庫中有大約500個表,我需要編寫腳本來識別依賴關係。基本上這些表在字段大小等方面正在發生變化,我們想要確定是否有任何其他對象 - 可能引用它們的存儲過程,函數,視圖等。這個清單並不是最終的,也可能會增長。 我發現以下兩種方式找到的依賴關係:用於查找表依賴關係的SQL服務器腳本

--Method 1: 
sp_depends 'Your_tableName' 
GO 

-- Method 2:Using DMV sys.dm_sql_referencing_entities 
SELECT referencing_schema_name, referencing_entity_name, 
referencing_id, referencing_class_desc, is_caller_dependent 
FROM sys.dm_sql_referencing_entities ('Your_tableName', 'OBJECT'); 
GO 

我的問題是什麼是最好的方式來實現這一目標? 何處放置該列表以便我可以使用while循環讀取所有表的列表並列出依賴關係? 我無法在生產數據庫上爲正在更改的表名創建SQL表,以便我可以在WHILE循環中讀取。 另外,我只能訪問SSMS。 請指教!

P.S.請讓我知道是否有辦法檢查鏈接服務器上的依賴關係

回答

-1

我以前遇到過相同的問題。上面的第二種方法可能更好,但要注意它從可能緩存了數據的內置系統視圖中提取了一些關係數據,所以如果您認爲它沒有返回最新的更改,請與您的dba管理員一起使用。如果我找到我用於此的腳本,我會更新帖子。