SQL Server中找某個Keyword在那個物件中出現!
前言
有時想找某個keyword用在那些SP或是Function之中,有那個方式可以整批找出來呢?
實作
可使用sys.syscomments這個Table,使用方式如下。
--找某個Key在那裡有用到 DECLARE @SEARCH NVARCHAR(256) SET @SEARCH = 'PagingCursor' SELECT object_name(id),text FROM syscomments WHERE text like '%' + @SEARCH + '%'
參考
http://technet.microsoft.com/zh-tw/library/ms186293.aspx
資料行名稱
資料類型
描述
id
int
這個文字所套用的物件識別碼。
number
smallint
程序分組中的數字 (如果有分組的話)。
0 = 項目不是程序。
colid
smallint
超過 4,000 個字元的物件定義資料列序號。
status
smallint
僅供參考之用。不支援。我們無法保證未來的相容性。
ctext
varbinary(8000)
SQL 定義陳述式的原始位元組。
texttype
smallint
0 = 使用者提供的註解
1 = 系統提供的註解
4 = 加密的註解
language
smallint
僅供參考之用。不支援。我們無法保證未來的相容性。
encrypted
bit
指出程序定義是否會模糊化。
0 = 不模糊化
1 = 模糊化
重要事項:
若要模糊化預存程序定義,請將 CREATE PROCEDURE 搭配 ENCRYPTION 關鍵字使用。
compressed
bit
一律傳回 0。這表示程序已經壓縮。
text
nvarchar(4000)
SQL 定義陳述式的實際文字。
SQL Server 2008 在目錄中繼資料內解碼及儲存 SQL 運算式的方式異於 SQL Server 2000。已解碼運算式的語意相當於原始文字,但是不能保證語法相同。例如,空白字元會從已解碼的運算式移除。
這個 SQL Server 2000 相容檢視會從目前的 SQL Server 結構取得資訊,並可傳回比 nvarchar(4000) 定義還要多的字元數。sp_help 會傳回nvarchar(8000) 做為文字資料行的資料類型。使用 syscomments 時,請考慮使用 nvarchar(max)。對於新的開發工作,請勿使用 syscomments。
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^