确定数据库之间的列级依赖关系

时间:2010-08-17 19:18:46

标签: sql sql-server sql-server-2005 dependencies

有没有办法识别数据库内和数据库之间的列级依赖关系?我想生成一个数据库中所有未被任何东西(视图,过程,UDF)使用的列的报告。

e.g。

在数据库'DB1'中,有一个表格,其中包含一个名为'col1'的列。如何确定数据库'DB1'或第二个数据库'DB2'中的procs,views或UDF是否正在使用'col1'?

谢谢

2 个答案:

答案 0 :(得分:2)

您可以尝试使用:

SELECT OBJECT_NAME(m.object_id), m.*
  FROM SYS.SQL_MODULES m
 WHERE m.definition LIKE N'%my_column_name%'

SYSCOMMENTSINFORMATION_SCHEMA.routines有nvarchar(4000)列。因此,如果在位置3998使用“my_column_name”,则无法找到它。 SYSCOMMENTS确实有多行,但ROUTINES会截断。

但这对SELECT *情况没有任何帮助,因为列名不会出现在文本中。

答案 1 :(得分:0)

如果它只是col1,db1和db2,则可以编写db1和db2中的对象脚本,并搜索对col1的引用。