我们有一个包含很多表的SQL Server。为了清理服务器,我们试图找到实际使用的表。我们在服务器上有一个表列表,现在我们想要创建一个由我们的代码使用的表列表。
我们在Visual Studio 2013中使用C#。有没有办法使用Visual Studio编译未使用的表列表?或者在代码中使用的表的列表 - 然后我们可以与我们的表列表进行比较。
我在数据模型(.edmx)中注意到,当您右键单击图表字段,然后转到从数据库更新模型时,将显示表,视图和存储过程的列表(在更新向导中)。除非我弄错了,否则我们连接的数据库中的所有未使用的表都会出错。是否有可能以某种方式导出此列表?
答案 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'');'