【问题标题】:Reference of table in all databases of the Server服务端所有数据库中表的引用
【发布时间】:2020-06-23 18:06:03
【问题描述】:

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

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

声明@command varchar(1000)

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

EXEC sp_MSforeachdb @command

【问题讨论】:

  • “它没有成功”到底是什么意思?您是否阅读了 sp_depends 的文档?现在是这样做的好时机。

标签: sql-server reference dependencies sp-msforeachdb


【解决方案1】:

问题可能是您的所有数据库中都不存在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 2017-01-18
    • 2016-12-14
    • 1970-01-01
    • 2014-12-06
    • 2011-08-12
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多