MS-SQL
[MSSQL] 다중 DB에서 특정 문자열 검색 쿼리
김뽀씨
2018. 1. 15. 17:54
USE MASTER
DECLARE @SQL VARCHAR(MAX);
DECLARE @DB VARCHAR(20);
DECLARE @SP_NAME VARCHAR(100);
SET @SP_NAME = 'SP'
SELECT name INTO #TABLE_DB
FROM sys.databases ;
ALTER TABLE #TABLE_DB ADD NO_SEQ INT IDENTITY (1, 1) NOT NULL;
DECLARE @CNT INT;
SELECT @CNT = COUNT(*)
FROM #TABLE_DB
DECLARE @INIT INT
SET @INIT = 1;
WHILE @INIT <= @CNT
BEGIN
SET @DB = '';
SET @SQL = '';
SELECT @DB = name
FROM #TABLE_DB
WHERE NO_SEQ = @INIT;
SET @SQL = 'SELECT ''' + @DB + ''' AS DB, ROUTINE_NAME
FROM ['+@DB+'].INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE ''%'+@SP_NAME+'%''
AND ROUTINE_TYPE=''PROCEDURE''
ORDER BY ROUTINE_NAME';
EXEC (@SQL)
SET @INIT = @INIT + 1;
END
DROP TABLE #TABLE_DB