我非常尷尬,但我不記得MS SQL Server SP的名稱,它搜索您的數據庫中的指定文本字符串,並返回包含該字符串的所有表名,函數,存儲過程等。我無法在幫助中查找它,因爲爲了獲得幫助,您需要知道它的名字!這就像sp_findtext
。查找文本字符串的SQL SP名稱是什麼?
它叫什麼?
來吧,最快的手指得到答案功勞! :)
我非常尷尬,但我不記得MS SQL Server SP的名稱,它搜索您的數據庫中的指定文本字符串,並返回包含該字符串的所有表名,函數,存儲過程等。我無法在幫助中查找它,因爲爲了獲得幫助,您需要知道它的名字!這就像sp_findtext
。查找文本字符串的SQL SP名稱是什麼?
它叫什麼?
來吧,最快的手指得到答案功勞! :)
從http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=32319
CREATE PROCEDURE sp_FindText @text varchar(8000), @findtype varchar(1)='P' AS
SET NOCOUNT ON
IF @findtype='P' SELECT DISTINCT Len(SubString(text,1, PatIndex('%' + @text + '%', text)))-Len(Replace(SubString(text,1, PatIndex('%' + @text + '%', text)),char(13),''))+1 AS Line,
--PatIndex('%' + @text + '%', text) AS Position,
OBJECT_NAME(id) AS ProcName
FROM syscomments
WHERE text like '%' + @text + '%'
ORDER BY ProcName, Line
IF @findtype='C' EXEC('SELECT TABLE_NAME + ''.'' + COLUMN_NAME AS TableColumn FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ''%' + @text + '%'' ORDER BY TableColumn')
IF @findtype='T' EXEC('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ''%' + @text + '%'' ORDER BY TABLE_NAME')
GO
它不僅搜索過程和視圖定義的文本,它也會找到表,視圖和列名:
EXEC sp_FindText 'myTable' --or-- EXEC sp_FindText 'myTable', 'P' --finds procedures/views containing 'myTable' in their definition/code
EXEC sp_FindText 'myTable', 'T' --finds tables/views containing 'myTable' in their name
EXEC sp_FindText 'myCol', 'C' --finds columns containing 'myCol' in their name
這是最好的,最通用的。謝謝! – 2009-10-22 09:45:10
http://www.lmgtfy.com/?q=sp_findtext – 2009-10-22 10:04:24
但是錯誤... syscomments只存儲nvarchar(4000),所以如果4個字母的搜索字符串在3999開始,所以這是不可靠的 – gbn 2009-11-18 05:09:56
我發現,正是這麼做的定製SP(FindTextInDatabase):
http://geekswithblogs.net/ram/archive/2007/05/22/112672.aspx
不知道,如果有一個現成的程序也。如果有的話,我也找不到它。
+1不錯的一個,但它不會搜索表/列名... – 2009-10-22 09:45:50
啊沒有看到那個! – pyrocumulus 2009-10-22 09:52:07
對結果的快速檢查這些:
select * from sysobjects where [name] like 'sp_%' order by 1
select * from master..sysobjects where [name] like 'sp_%' order by 1
你會發現它是什麼給你。
乾杯!
有這樣的SP?該死的,我自己寫了這樣的東西,因爲我以爲沒有那樣的東西...... – 2009-10-22 09:16:57
啊,原來沒有 - 我以爲有人在我上一份工作中寫過它...... :) – 2009-10-22 09:33:09