我需要知道SQL Server數據庫中所有使用表/字段的地方。如何在SQL Server中搜索所有使用字段或表的地方
我畢竟是存儲過程,觸發器,函數等,對這個表/字段做任何事情。
的「查找」選項似乎並沒有做到這一點,我不能相信,要做到這一點的唯一方法是編寫一個查詢...
我需要知道SQL Server數據庫中所有使用表/字段的地方。如何在SQL Server中搜索所有使用字段或表的地方
我畢竟是存儲過程,觸發器,函數等,對這個表/字段做任何事情。
的「查找」選項似乎並沒有做到這一點,我不能相信,要做到這一點的唯一方法是編寫一個查詢...
我用很老了,從紅門免費工具。它被稱爲SQL Search。它可以通過指定名稱來搜索任何數據庫對象。不錯的是它實際上是SSMS插件,所以你可以在SSMS中使用它。我甚至使用它與SSMS 2012.
P.S.我不以任何方式隸屬於紅門
查詢是唯一我所知道的。我用這個:
SELECT DISTINCT
o.name AS Object_Name,o.type_desc
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id=o.object_id
WHERE m.definition Like '%WhateverIAmSearchingFor%'
我會有興趣看看是否有人張貼一個更好的查詢,也許,我可以代替這個。我已經有很長一段時間了。
我認爲如果where條件更改爲'm.definition Like'%WhateverIAmSearchingFor%**'** with space **' – 2013-03-12 19:51:02
@RavindraGullapalli或者'' '+ m.definition +''Like'%WhateverIAmSearchingFor%'' - 匹配有或沒有空格... – 2013-03-12 19:54:12
眺望美景,函數,觸發器,存儲過程等:
SELECT DISTINCT SO.NAME
FROM SYSOBJECTS SO INNER JOIN
SYSCOMMENTS SC ON SC.ID = SO.ID
WHERE SC.TEXT LIKE '%foo%'
我保留在SMSS上通過鍵盤快捷方式調用的存儲過程,這總是有用 – 2013-03-12 19:54:53
只有syscomments的問題與與sql_modules相對的是syscomments.text是一個nvarchar(4000)列,而sql_modules.definition是一個nvarchar(max)。所以syscomments在理論上可以截斷大對象的一部分定義。 – 2013-03-12 20:32:53
完美!我很驚訝SQL Server Management Studio沒有相同的功能。 – 2013-03-12 21:08:14
這也是我很久的願望。但只要此工具與SQL Server保持兼容,我就行了 – JackLock 2013-03-12 21:10:01