查詢資料庫物件依賴關係

2022-05-08 11:03:09 字數 1157 閱讀 6121

use testdb1

goselect

distinct

object_name(object_id) as objname

from sys.sql_dependencies

where referenced_major_id =

object_id('

dbo.tblprojects

') order

by objname

雖然使用上面的**可以從sys.sql_dependencies直接查詢sql物件的引用關係,但是這種方式只能查詢單個資料庫內的直接引用關係,對於跨庫的引用以及通過動態sql方式產生的引用通過這種方式是沒有辦法查詢到的。但是可以使用文字查詢的方式從每個資料的syscomments表遍歷查詢。

以下**用來在testdb1和testdb2資料庫中查詢使用到tblprojects表的儲存過程:

declare

@txt

varchar(100)

select

@txt='

tblprojects

'declare

@sql

varchar(max)

select

@sql

=isnull(@sql+'

union all

','') ++'

select obj.name,obj.type,

'''+

[name]+

'''as dbname from '+

[name]+

'..sysobjects obj with (nolock) inner join '+

[name]+

'..syscomments cmt with (nolock) on obj.id = cmt.id where (obj.type=''p

''or obj.type=''v

'') and cmt.text like ''%

'+@txt+'

%'''

from master.sys.sysdatabases with(nolock)

where name in ('

testdb1

','testdb2

')exec(@sql)

更新資料庫物件依賴關係

在sql server 中我們會通過郵件選單來檢視乙個物件的依賴關係,但有些意外情況會造成檢視結果並不是非常的準確!可以嘗試以下例子 第一步 顛倒順序,建立乙個缺失依賴關係的儲存過程 code create proc dbo.testrefresh1 asexec dbo.testrefresh2 ...

發現資料庫物件的依賴關係

sql server management studio中有乙個很有意思的工具,可以檢視某個物件的依賴和被依賴關係。如下圖所示 假設,我們自己的程式也要實現這樣的功能,那麼該怎麼做呢?1.首先,建立乙個專案,新增以下三個引用 2.用如下 測試 using system using system.co...

資料庫 關係模式函式依賴

關聯式資料庫邏輯設計 針對具體問題,如何構造乙個適合於它的資料模式 資料庫邏輯設計的工具 關聯式資料庫的規範化理論 關係模式由五部分組成,即它是乙個五元組 r u,d,dom,f r 關係名 u 組成該關係的屬性名集合 d 屬性組u中屬性所來自的域 dom 屬性向域的映象集合 f 屬性間資料的依賴關...