2012-07-21 54 views

回答

1

下面的代碼將有助於找到所有與一個或多個特定表相關的存儲過程(SP)。 sp_help和sp_depends並不總是返回準確的結果。

----選項1

SELECT DISTINCT so.name 
FROM syscomments sc 
INNER JOIN sysobjects so ON sc.id=so.id 
WHERE sc.TEXT LIKE '%tablename%' 

----選項2

SELECT DISTINCT o.name, o.xtype 
FROM syscomments c 
INNER JOIN sysobjects o ON c.id=o.id  
WHERE c.TEXT LIKE '%tablename%' 
+0

如果您發佈的代碼,XML或數據樣本,**請**突出顯示文本的那些行編輯器,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」),以良好地格式化和語法突出顯示它! – 2012-07-21 15:07:45

+1

感謝marc,那是一個很好的建議,因爲我在想如何做這個格式化。 – 2012-07-21 15:12:17

0

執行下面的查詢將產生所需的結果。將foobar替換爲需要在存儲過程中找到的文本。對於SQL Server 2005

SELECT ROUTINE_NAME, ROUTINE_DEFINITION 
    FROM INFORMATION_SCHEMA.ROUTINES 
    WHERE ROUTINE_DEFINITION LIKE '%foobar%' 
    AND ROUTINE_TYPE='PROCEDURE' 
1

的一種方式和多達

SELECT NAME 
FROM sys.procedures 
WHERE OBJECT_DEFINITION(object_id) LIKE '%clients[_]users%' 

你需要[]各地_自_指任何字符,當你做一個通配符搜索

相關問題