我只需要搜索我的數據庫中的所有存儲過程,找到名稱中包含「item」的項。有任何想法嗎?如何按名稱查找存儲過程?
我一直在擺弄圍繞這個問題,但它是還沒有應用:
SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%'
我只需要搜索我的數據庫中的所有存儲過程,找到名稱中包含「item」的項。有任何想法嗎?如何按名稱查找存儲過程?
我一直在擺弄圍繞這個問題,但它是還沒有應用:
SELECT DISTINCT OBJECT_NAME(ID) FROM SysComments WHERE Text LIKE '%Item%'
爲了找到那些包含在名字符串「項目」。
select schema_name(schema_id) as [schema],
name
from sys.procedures
where name like '%Item%'
This也可以幫你解決這個問題。它也適用於具有不同排序規則的數據庫。你可以通過傳遞確切的程序名或部分名稱來找到程序。
可以在Server 2008中使用新的查詢:
use dbName
go
print object_definition(object_id('storedProcedureName'))
你會得到程序的內容。
使用SQL,您只能使用%和_通配符。如果您想要更強大的搜索功能,可以使用SchemaCrawler。 SchemaCrawler可以使用匹配名稱的正則表達式來搜索例程。您甚至可以使用正則表達式在例程定義中進行搜索。
Sualeh Fatehi,SchemaCrawler
@Aaron,是的,我的意思ROUTINE_NAME,我並沒有意識到什麼,我認爲可能是過時的和更好的替代品超割讓。大約兩年前我已經這樣做了,我認爲它仍然適合。我會刪除我的評論。 –
查看@ Martin的回答。如果你想要那些*定義*包含「item」的地方,使用'WHERE OBJECT_DEFINITION([object_id])LIKE'%item%';'。請不要使用syscomments,現在不再是2000年了。 :-) –
[按名稱查找存儲過程]的可能重複(http://stackoverflow.com/questions/3574244/find-stored-procedure-by-name) – nathanchere