[SQL] 在SQL Server中搜尋關鍵字

  • 15935
  • 0
  • SQL
  • 2016-10-02

[SQL] 在SQL Server的檢視(View)、預存程序(Stored Procedure)、純量函數、資料表函數等,用sys.sysobjects與sys.syscomments搜尋關鍵字。

在SQL Server中搜尋關鍵字

想要搜尋特定關鍵字在SQL Server的檢視(View)、預存程序(Stored Procedure)、純量函數、資料表函數..等是否存在時。

使用sys.sysobjcetssys.syscomments搜尋SQL語法如下:

SELECT *
FROM sys.sysobjects 
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id  --對應id
WHERE sys.syscomments.text LIKE '%關鍵字%'  --想要查詢的關鍵字

sys.sysobjcets : 針對資料庫內所建立的每個物件,如條件約束、預設值、記錄、規則和預存程序,各包含一個資料列。

sys.syscomments : 包含資料庫中每份檢視、規則、預設值、觸發程序、CHECK 條件約束、DEFAULT 條件約束以及預存程序的項目。 text 資料行包含原始的 SQL 定義陳述式。

sys.syscomments.text : SQL 定義陳述式的實際文字。在欄位裡搜尋關鍵字。

 

若要指定檢視(View)、預存程序(Stored Procedure)、純量函數、資料表函數..等。加上條件 sys.sysobjects.type = '物件類型'

SELECT *
FROM sys.sysobjects 
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id  --對應id
WHERE sys.syscomments.text LIKE '%關鍵字%'  --想要查詢的關鍵字
AND sys.sysobjects.type = '物件類型'  --指定的物件類型

sys.sysobjects的type類型:

  • AF = 彙總函式 (CLR)

  • C = CHECK 條件約束

  • D = 預設值或 DEFAULT 條件約束

  • F = FOREIGN KEY 條件約束

  • FN = 純量函數

  • FS = 組件 (CLR) 純量函數

  • FT = 組件 (CLR) 資料表值函式 IF = 內嵌資料表函數

  • IT - 內部資料表

  • K = PRIMARY KEY 或 UNIQUE 條件約束

  • L = 記錄

  • P = 預存程序

  • PC = 組件 (CLR) 預存程序

  • R = 規則

  • RF = 複寫篩選預存程序

  • S = 系統資料表

  • SN = 同義字

  • SQ = 服務佇列

  • TA = 組件 (CLR) DML 觸發程序

  • TF = 資料表函數

  • TR = SQL DML 觸發程序

  • TT = 資料表類型

  • U = 使用者資料表

  • V = 檢視

  • X = 擴充預存程序

 

例如,要搜尋在檢視中有'Name'這個文字,SQL如:

SELECT *
FROM sys.sysobjects 
INNER JOIN syscomments ON sys.sysobjects.id = sys.syscomments.id  --對應id
WHERE sys.syscomments.text LIKE '%Name%'  --想要查詢的關鍵字,Name
AND sys.sysobjects.type = 'V'  --指定的物件類型,檢視(View)

 

 END 

回目錄