【发布时间】:2009-11-17 17:40:10
【问题描述】:
“查看依赖项”显示了依赖于 SQL Server 中表的所有对象。现在如何使用 SSMS 在一个命令中编写所有这些对象的脚本?有没有免费的工具可以做到这一点?
【问题讨论】:
标签: sql-server ssms
“查看依赖项”显示了依赖于 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 的 syscmets 表存储数据库中每个视图、规则、默认值、触发器、CHECK 和 DEFAULT 约束以及存储过程的原始 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'
【讨论】:
SSMS 依赖于 SMO 来提取依赖项。 DependencyWalker 类,即。您可以将其包装在您的代码中,并且 SMO 还可以使用 Scripter 类编写对象定义脚本(这也是 SSMS 用于编写对象定义脚本的方法)。
【讨论】: