SQL 查询的细分/文档



我有一个非常庞大、复杂且未记录的数据库。我的任务是提供一个文档,该文档将显示哪些表和列已用于所有存储过程、函数等。

根据我的研究,大多数查询将具有与此类似的格式:

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代码输出以下结果:

  • 用户名 - 名字
  • 用户名 - 姓氏
  • 用户名 - 用户标识
  • 帐户 - 用户 ID
  • 帐户 - 帐户编号

实现这一目标的最佳方法是什么?我尝试将每个 SQL 代码单元格与 INFORMATION_SCHEMA 联接。列,但我得到的结果不准确,比如当列名出现在列表中时,但实际上并未用于 SQL 代码单元格中的该特定表。

谢谢

可能您想查看您正在查看的存储过程/函数的依赖项?

看看 https://www.mssqltips.com/sqlservertip/1768/identifying-object-dependencies-in-sql-server/

例如,如果过程名称是 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;

最新更新