【发布时间】:2018-03-21 14:15:37
【问题描述】:
我有一个查询要检查我的程序,如下:
DECLARE @SearchTerm VARCHAR(MAX) = 'INSERT' -- Just an example
SELECT ROUTINE_NAME [Procedure]
, SPECIFIC_CATALOG [Database]
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SUBSTRING(ROUTINE_DEFINITION, 54, 20) LIKE '%'+@SearchTerm+'%'
AND ROUTINE_TYPE = 'PROCEDURE'
ORDER BY [Procedure]
示例输出:
Procedure Database
pGetAnimals Zoo
pGetGreens Food
pGetBeans Food
pGetChocolate Food
问题是,我的知识限制我为服务器上的每个数据库打开查询。
我想要的是在服务器上的所有数据库上运行查询,无论是;单个 select 语句,或将结果填充到临时表中。
我相信这是可能的。
有没有人知道一个巧妙的技巧来做到这一点?
【问题讨论】:
-
你可以很容易地使用动态 sql 和 sys.databases。或者,您可以使用此处的过程循环遍历所有数据库。 sqlblog.org/2010/12/29/…
标签: sql-server database search stored-procedures