2016-09-02 24 views
0

我正在使用SQL Server 2008 R2。我有多個數據庫恢復一個是主人和其他版本DB(TesDB, TestDB1,TestDB2 etc...表中使用的存儲過程

我想知道一個特定的表用於哪個存儲過程。我需要數據庫列表。

目前我正在使用下面的查詢,但它一次只能用於一個數據庫。

use [TestDB] 
GO 

SELECT Name 
FROM sys.Procedures 
WHERE OBJECT_DEFINITION(OBJECT_ID) = 'Testtable' 

請建議。

回答

-1

exec sp_MSforeachdb'use?選擇 ?作爲DBName,名稱從sys.Procedures WHERE OBJECT_DEFINITION(OBJECT_ID)=''Testtable'''

0

你的意思是什麼?

declare @db varchar(50), 
     @sql nvarchar(max), 
     @tofind varchar(max)='table to find' 

DECLARE db_cursor CURSOR FOR 
SELECT name 
FROM MASTER.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb') 

OPEN db_cursor 
FETCH NEXT FROM db_cursor INTO @db 


WHILE @@FETCH_STATUS = 0 
BEGIN 
    set @sql='SELECT Name,OBJECT_DEFINITION(OBJECT_ID)FROM '[email protected]+'.sys.Procedures WHERE OBJECT_DEFINITION(OBJECT_ID) like ''%'[email protected]+'%'' ' 
    print @sql 

    exec sp_executesql @sql 
FETCH NEXT FROM db_cursor INTO @db 
END 

CLOSE db_cursor 
DEALLOCATE db_cursor