如何获取未使用的SQL表的列表

时间:2015-03-06 20:28:03

标签: c# sql-server visual-studio-2013

我们有一个包含很多表的SQL Server。为了清理服务器,我们试图找到实际使用的表。我们在服务器上有一个表列表,现在我们想要创建一个由我们的代码使用的表列表。

我们在Visual Studio 2013中使用C#。有没有办法使用Visual Studio编译未使用的表列表?或者在代码中使用的表的列表 - 然后我们可以与我们的表列表进行比较。

我在数据模型(.edmx)中注意到,当您右键单击图表字段,然后转到从数据库更新模型时,将显示表,视图和存储过程的列表(在更新向导中)。除非我弄错了,否则我们连接的数据库中的所有未使用的表都会出错。是否有可能以某种方式导出此列表?

1 个答案:

答案 0 :(得分:0)

您可能想要做两件事:

在表上设置SQL Server Audit,以查看是否有任何程序对表执行任何操作,尤其是选择(哪些触发器无法查看)。您可能需要运行一年才能确保它完全未使用。

运行sp_depends或更好地使用sys.dm_sql_referencing_entities(table_name,' OBJECT'),它将搜索整个数据库以查看是否有任何对象引用此表。

exec sp_msforeachtable' SELECT referencing_schema_name,referencing_entity_name,referencing_id,referencing_class_desc,is_caller_dependent FROM sys.dm_sql_referencing_entities(''?'','' OBJECT'');'