与视图相关的数据库对象-sql server 2005
如何知道SQLServer2005数据库中有多少数据库表、视图或任何其他对象附加到视图。 我尝试使用Sp_,但令人惊讶的是,它没有显示使用它的Sp名称 当我运行语句Sp_dependens vw_MyViewName时与视图相关的数据库对象-sql server 2005,sql,sql-server,sql-server-2005,views,Sql,Sql Server,Sql Server 2005,Views,如何知道SQLServer2005数据库中有多少数据库表、视图或任何其他对象附加到视图。 我尝试使用Sp_,但令人惊讶的是,它没有显示使用它的Sp名称 当我运行语句Sp_dependens vw_MyViewName时 我只得到我在vw_MyViewName中使用的表和列的名称。我需要知道与此视图相关的其他对象。我所知道的确定SQL Server数据库中对象依赖关系的唯一完全可靠的方法是将您的架构加载到Visual Studio database Edition(DBPro)中并检查其中的依赖关
我只得到我在vw_MyViewName中使用的表和列的名称。我需要知道与此视图相关的其他对象。我所知道的确定SQL Server数据库中对象依赖关系的唯一完全可靠的方法是将您的架构加载到Visual Studio database Edition(DBPro)中并检查其中的依赖关系。我发现这是万无一失的,不像SQLServer跟踪依赖关系的方式
我不一定会因此责备SQL Server。我认为它从未声称能够100%准确地跟踪依赖关系,主要是因为它绑定对象的方式。在SQL Server Management Studio的“对象浏览器”面板中,右键单击要检查的对象(存储过程、表、视图等),然后单击“显示依赖关系” 出现的窗口将显示从属对象和“从属”对象,只需在两个单选按钮之间切换即可;) 如果要手动执行,则需要在sys.sql\u dependencies系统视图上构建查询。用一些例子来说明
请注意,将创建依赖于不存在的表、视图和其他对象的存储过程,但它们不仅显然不起作用,而且在创建所有“依赖”对象并重新创建SP之前,不会添加依赖信息 在SQL Server 2005中,如果以错误的顺序创建对象,则会发生这种情况 您将收到一条警告消息,指出无法为缺少的对象添加依赖项信息,但仍将创建该对象
您可以在数据库中的所有对象上运行
sp\u refreshsqlmodule
,以重新创建此类缺失的依赖项信息(此处有一个示例脚本)直到引入sys.sql\u expression\u dependencies(sql Server 2008),您需要进行查询
就个人而言,我会使用它来确保依赖项必须存在不确定您使用的是什么版本。2008年的依赖关系视图比2005年可靠得多。唯一没有正确跟踪的依赖项是动态SQL AFAIK。@Martin-更可靠还是完全可靠?在DBPro中,它们是完全可靠的。据我所知,
sys.sql\u expression\u dependencies
是完全可靠的。2008年,当解析器在CREATE
或ALTER
中遇到对象名时,即使引用的对象丢失,它也会记录该对象名。有两列依赖于调用方,不明确
,可以查看对象绑定点。
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%MyTable%'