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

Ton*_*ich 3 sql-server ssms

"查看依赖项"显示依赖于SQL Server中的表的所有对象.现在如何使用SSMS在一个命令中编写所有这些对象的脚本?是否有免费工具可以做到这一点?

RRU*_*RUZ 6

首先,您可以尝试此链接 了解SQL依赖项

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

使用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;
Run Code Online (Sandbox Code Playgroud)

使用syscomments表,SQL Server的syscomments表为每个视图,规则,默认,触发器,CHECK和DEFAULT约束以及数据库中的存储过程存储原始SQL定义语句.这是很多信息!您可以使用以下格式的SQL语句查询此表以列出依赖对象

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

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

EXEC sp_depends @objname = N'your object to check'
Run Code Online (Sandbox Code Playgroud)