SQL查询的细分/文档

时间:2017-08-22 23:37:37

标签: c# sql sql-server

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

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

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

  • 用户名 - FirstName
  • 用户名 - 姓氏
  • 用户名 - 用户ID
  • 帐户 - 用户ID
  • 帐户 - 帐户编号

实现这一目标的最佳方法是什么?我曾尝试使用INFORMATION_SCHEMA.COLUMNS连接每个SQL代码单元格,但是我得到的结果不准确,比如列名出现在COLUMNS表中,但实际上并没有用于SQL代码单元格中的特定表。

由于

1 个答案:

答案 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;