SQL表包含數百個表,存儲過程和函數。用於列出所有相關實體的SQL查詢
我想放在一起的SQL查詢,將返回給定的一組表的所有依賴關係。有沒有辦法使用SQL Server Management Studio來完成此操作而不寫查詢?
更新:簡化了這個問題。
SQL表包含數百個表,存儲過程和函數。用於列出所有相關實體的SQL查詢
我想放在一起的SQL查詢,將返回給定的一組表的所有依賴關係。有沒有辦法使用SQL Server Management Studio來完成此操作而不寫查詢?
更新:簡化了這個問題。
在SSMS中,只需右鍵單擊表並選擇「查看依賴關係」。至於腳本,看看this article。
編輯:在SSMS中,你只能看到它一個。原因是因爲運行查看它們的存儲過程只需要一個數據庫對象。因此,爲了編寫多個腳本,您只需使用多行EXEC sp_depends @objname = N'DATABASE.OBJECT';
作爲您想獲得依賴關係的表/視圖/存儲過程/函數。一種方法是使用腳本像下面這樣獲得,將有所有依賴對象的唯一列表將包括:
CREATE TABLE #dependents (obj_name nvarchar(255), obj_type nvarchar(255))
-- Do this for every primary object you're concerned with finding dependents for
INSERT INTO #dependents (obj_name, obj_type)
EXEC sp_depends @objname = N'DATABASE.OBJECT'
-- ...
SELECT DISTINCT obj_name, obj_type
FROM #dependents
DROP TABLE #dependents
我只是博客與此類似,可以幫助: Knowing What to Test When Changing a SQL Server Object。
另一種方法是右鍵單擊數據庫並選擇「任務」,然後選擇「生成腳本...」,選中「在所選數據庫中腳本所有對象」複選框。這會給你一個巨大的文本文件,然後你可以搜索。
@Agent:獲得了SSMS部分。該鏈接將討論如何查看單個表的依賴關係。我試圖找到一組表的依賴關係。我無法在SSMS中選擇多個表並查看依賴關係。任何想法如何使用SSMS或SQL查詢來完成這項工作? – pencilslate 2009-12-12 23:55:17
@pencilslate:看看我的編輯獲取對象列表。我認爲可能有更簡潔的寫法,但目前它正在逃避我。 – 2009-12-13 15:34:13