0

我想在特定服务器的所有数据库中找到特定表的引用。示例:我的查询窗口为DB1数据库打开并执行查询为:
exec sp_depends 'dbo.table1'它只返回数据库对象(如数据库DB1的(过程、函数、触发器))中表table1
的所有引用,但我想知道同一服务器上所有其他数据库中表的引用,而无需每次都进入特定的数据库查询窗口并运行查询。

exec sp_depends 'dbo.table1'
我为所有数据库尝试了以下语句,但没有成功:

声明@command varchar(1000)

选择@command = '使用?exec sp_depends ''dbo.table1'''

执行 sp_MSforeachdb @command

4

1 回答 1

0

问题可能是您的所有数据库中都不存在 dbo.table1。因此,您需要验证您正在运行的数据库是否包含该表。尝试这个:

DECLARE @command varchar(1000)

SELECT @command = 'USE ? IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo'' AND  TABLE_NAME = ''table1'')) BEGIN exec sp_depends ''dbo.table1''; END'

EXEC sp_MSforeachdb @command
于 2020-06-23T20:34:00.200 回答