簡體   English   中英

搜索所有數據庫中的存儲過程/函數

[英]Search stored procedures/functions in all databases

我想在所有數據庫中的所有過程/函數等中搜索特定文本。 我設法從這個答案創建所需的查詢,但看起來OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME))為除當前數據庫之外的所有數據庫返回NULL。

sp_msforeachdb 'SELECT ''?'' AS DB, SPECIFIC_NAME, OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_NAME)) FROM [?].INFORMATION_SCHEMA.ROUTINES'

你絕對需要Red-Gate的SQL搜索工具 - 它是免費的 ,絕對非常棒,非常適合這種需求。

替代文字

問題是OBJECT_ID不能以這種方式使用。 它只適用於當前數據庫。 嘗試直接從INFORMATION_SCHEMA.ROUTINES返回ROUTINE_DEFINITION。 這個限制為4000個字符。 我將嘗試在SO上找到我的另一個答案,它使用MS元數據視圖提供了我的解決方法。

看看這個:

您可以搜索SQL Server 2005存儲過程內容嗎?

試試這個:

select * from syscomments where [text] like '%yourKeyword%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM