回答
這是一個有點天真,但可行的例子:(SQL服務器上測試2005 & 2008 R2)
use msdb;
SElECT * FROM sys.all_sql_modules
WHERE
(definition LIKE '%CREATE VIEW%' OR
definition LIKE '%CREATE PROCEDURE%')
AND definition LIKE '%UNION%'
爲了鞏固它只是加入通過object_id鏈接和過濾器的視圖和存儲過程通過對象類型而不是使用LIKE。
簡單:
SElECT * FROM sys.all_sql_modules
WHERE definition LIKE '%UNION%'
警告:由於我們執行對每個對象的創建腳本LIKE比較,我們也將在字UNION拿起如果當它出現/在註釋中。這可能對你很好,但如果你需要結果更具確定性,並避免這種情況下,你的WHERE子句將需要更復雜,可能使用正則表達式來優化結果。
這些東西存儲在sys.sql_modules
。
個人而言,我喜歡使用INFORMATION_SCHEMA
觀點:
對於存儲過程:
SELECT
*
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_TYPE = 'PROCEDURE'
AND
--ROUTINE_DEFINITION LIKE '%union%' <-- 4,000 character limitation
OBJECT_DEFINITION(OBJECT_ID(SPECIFIC_SCHEMA + '.' + SPECIFIC_NAME))
LIKE '%union%'
而對於訪問量:
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS
WHERE
--VIEW_DEFINITION LIKE '%union%' <-- 4,000 character limitation
OBJECT_DEFINITION(OBJECT_ID(TABLE_SCHEMA + '.' + TABLE_NAME)) LIKE '%union%'
這些視圖限於定義,你是哪個數據庫目前USE
ing。
另外,有a wonderful tool from xSQL software,讓您的Microsoft SQL Server 2005和2008
UPDATE強大的搜索功能:由於@Bogdan指出的,INFORMATION_SCHEMA
定義僅限於第4000個字符。我已更新我的答案以包含解決方法。在這一點上,追求sys
視圖可能會更容易。
+1很好的使用信息模式。 – Kuberchaun
ROUTINE_DEFINITION僅限於4000個字符('NVARCHAR(4000)')。 –
@BogdanSahlean:謝謝你的信息 - 我沒有意識到是這樣。 –
- 1. 在所有數據庫的所有對象中查找表名
- 2. 如何使用腳本查找數據庫中的所有對象?
- 3. 需要查詢來查找數據庫中的所有對象?
- 4. 查找對SQL Server數據庫中的對象的所有引用
- 5. 如何在訪問數據庫的子查詢中使用union
- 6. 如何在SQL Server數據庫中查找最大的對象?
- 7. 使用Java查找實例中的所有SQL Server數據庫
- 8. 使用Idiorm查找數據庫中的所有記錄
- 9. 在Firebase數據庫中查找對象
- 10. 如何找到git對象數據庫中的所有git日誌消息?
- 11. 如何通過查詢將數據庫中的所有對象的權限授予數據庫用戶
- 12. 如何查找SQLServer數據庫中所有空間的使用位置
- 13. 如何處理需要查找數據庫中的數據的值對象
- 14. 更改數據庫中所有對象的所有權
- 15. 如何編寫腳本以查找SQL Server數據庫對象(如storedproc和views)中使用的數據庫?
- 16. 如何查找所有與兩個數組相交的對象?
- 17. 如何使用查找來編輯數據庫中的數據?
- 18. 使用Play Framework在數據庫中查找單個對象
- 19. 如何使用CakePHP模型關聯查找所有對象?
- 20. 查找SQL Server數據庫中的所有僞相關數據
- 21. 使用Date對象查找一個月中的所有日期?
- 22. 如何使用數據庫中的數據創建JavaScript對象?
- 23. RoR:查找對象數組的所有關聯對象
- 24. 如何查找數據庫表的所有依賴關係?
- 25. 使用所有關聯ID查找對象的查詢(Rails 4)
- 26. 如何用數據庫中的'限制'值查找所有的onDelete子句?
- 27. 如何查找C#中所有對象的公共字段?
- 28. 如何查找lua中某個對象的所有屬性?
- 29. 查找數據庫對象對象的Rails
- 30. 如何查找所有數據庫引用
如果你需要一個工具,那麼你可以使用[RedGate SQL Search](http://www.red-gate.com/products/sql-development/sql-search/)。 –
謝謝你的回答 – bzamfir