有没有办法识别数据库内和数据库之间的列级依赖关系?我想生成一个数据库中所有未被任何东西(视图,过程,UDF)使用的列的报告。
e.g。
在数据库'DB1'中,有一个表格,其中包含一个名为'col1'的列。如何确定数据库'DB1'或第二个数据库'DB2'中的procs,views或UDF是否正在使用'col1'?
谢谢
答案 0 :(得分:2)
您可以尝试使用:
SELECT OBJECT_NAME(m.object_id), m.*
FROM SYS.SQL_MODULES m
WHERE m.definition LIKE N'%my_column_name%'
SYSCOMMENTS
和INFORMATION_SCHEMA.routines
有nvarchar(4000)列。因此,如果在位置3998使用“my_column_name”,则无法找到它。 SYSCOMMENTS确实有多行,但ROUTINES会截断。
但这对SELECT *
情况没有任何帮助,因为列名不会出现在文本中。
答案 1 :(得分:0)
如果它只是col1,db1和db2,则可以编写db1和db2中的对象脚本,并搜索对col1的引用。