我有一个非常庞大,复杂且没有文档的数据库。我有一项任务是提供一个文档,该文档将显示哪些表和列已用于所有存储过程,函数等。
根据我的研究,大多数查询的格式与此类似:
SELECT u.FirstName , u.LastName, a.AccountNumber
FROM Username u
LEFT JOIN Account a
ON a.UserID = u.UserID
~90%的表和列将具有别名。
此外,我有一个包含2列的表 - 函数/ sproc名称及其SQL代码。
我正在寻找一种方法(最好是SQL,但可以是C#),它会为上面的SQL代码输出以下结果:
实现这一目标的最佳方法是什么?我曾尝试使用INFORMATION_SCHEMA.COLUMNS连接每个SQL代码单元格,但是我得到的结果不准确,比如列名出现在COLUMNS表中,但实际上并没有用于SQL代码单元格中的特定表。
由于
答案 0 :(得分:0)
您可能希望查看您正在查看的存储过程/函数的依赖项?
查看https://www.mssqltips.com/sqlservertip/1768/identifying-object-dependencies-in-sql-server/
e.g。如果程序名称是dbo.myproc,则类似于下面的
SELECT '* ' + referenced_entity_name + ' - ' + referenced_minor_name
FROM sys.dm_sql_referenced_entities ('dbo.myproc', 'OBJECT')
WHERE referenced_minor_name is not null;