一个SQL表有数百个表、存储过程和函数。
我正在尝试组合一个SQL查询,该查询将返回一组给定表的所有依赖项。有没有一种方法可以在不编写查询的情况下使用SQL Server Management Studio实现这一点?
更新:将问题简单化。
发布于 2009-12-13 03:11:56
在SSMS中,只需右键单击表并选择“查看依赖项”。至于脚本,请看一下this article。
编辑:在SSMS中,您只能看到一个。原因是因为运行存储过程来查看它们只需要一个数据库对象。因此,要编写多个脚本,只需对要获取依赖关系的表/视图/存储过程/函数使用多行EXEC sp_depends @objname = N'DATABASE.OBJECT';即可。一种方法是使用类似下面的脚本来获取必须包含的所有依赖对象的唯一列表:
CREATE TABLE #dependents (obj_name nvarchar(255), obj_type nvarchar(255))
-- Do this for every primary object you're concerned with finding dependents for
INSERT INTO #dependents (obj_name, obj_type)
EXEC sp_depends @objname = N'DATABASE.OBJECT'
-- ...
SELECT DISTINCT obj_name, obj_type
FROM #dependents
DROP TABLE #dependents发布于 2009-12-14 00:18:40
我只是在博客上写了一些类似的东西,可能会有所帮助:Knowing What to Test When Changing a SQL Server Object。
另一种方法是右键单击数据库并选择“任务”,然后选择“生成脚本...”,选中“为选定数据库中的所有对象编写脚本”复选框。这将给你一个巨大的文本文件,然后你可以搜索。
https://stackoverflow.com/questions/1894288
复制相似问题