我要编写依赖于SQL Server表的所有对象的脚本

2022-03-07 00:00:00 sql-server ssms
"查看依赖项"显示SQL Server中依赖于表的所有对象。现在,我如何使用SSMS在一个命令中编写所有这些对象的脚本?是否有可执行此操作的免费工具?


解决方案

首先可以尝试此链接Understanding SQL Dependencies

其次,您有多个选项可以检查依赖项

使用sql_expression_dependencies表,要查看X对Y的依赖关系,请运行以下查询。

SELECT * 
FROM sys.sql_expression_dependencies 
WHERE referencing_id = OBJECT_ID('X')
    AND referenced_id = OBJECT_ID('Y')
    AND referenced_schema_name = 'dbo'
    AND referenced_entity_name = 'Y'
    AND referenced_database_name IS NULL
    AND referenced_server_name IS NULL;
使用syscomments表,SQL Server的sysComments表为数据库中的每个视图、规则、默认、触发器、检查和默认约束以及存储过程存储原始SQL定义语句。那可是一大堆信息啊!您可以使用以下形式的SQL语句查询此表以列出相关对象

SELECT *
FROM syscomments 
INNER JOIN sysobjects sysobj ON syscomments.id = sysobj.id
WHERE charindex('your object to check', text) > 0 

使用sp_depends存储过程,其中显示有关数据库对象依赖关系的信息,例如:从属于表或视图的视图和过程,以及该视图或过程所依赖的表和视图

EXEC sp_depends @objname = N'your object to check'

相关文章