SQL - 查找列属于哪个表的最佳方法是什么?

时间:2015-06-18 14:23:03

标签: sql-server tsql

在SQL Server环境中,在维护涉及多个表的SQL查询时,通常我需要弄清楚特定列属于哪个表。

不幸的是,查询中的表示法不是TableName.ColumnName,而只是ColumnName

除了手动查看每个表的列定义之外,有没有办法查找从哪个表中提取列?我正在考虑可以在IDE(即Management Studio)或T-SQL语句中使用的东西......但此时我几乎可以接受任何事情。

还有一点:我需要在本地执行此操作,而无需通过网络推送信息,或在SQL Management Studio ...或Visual Studio外部下载其他工具。

3 个答案:

答案 0 :(得分:2)

嗯,你可以试试这两个。

在Management Studio中:

  • 标记您的查询
  • 右键单击
  • 编辑器中的设计查询

您将获得一个图形界面,可以让您更轻松地查看哪个列来自哪个表。

否则,您可以查询(如果您想自动创建)INFORMATION_SCHEMA

SELECT c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS as c
WHERE c.TABLE_CATALOG = N'YOURSCHEMA' AND c.TABLE_NAME = N'YOURTABLE'

答案 1 :(得分:1)

如果安装了Visual Studio,并且可以创建数据库项目,则可以使用重构功能向所有SQL查询添加完全限定名称。如果使用别名,这将使用别名,但会更改脚本,以便每列至少具有参考值。

抓取the instructions from MSDN以完全限定解决方案中.sql文件中包含的所有名称

  

在“解决方案资源管理器”中,右键单击包含的脚本文件(.sql)   要更新的名称,指向“重构”,然后单击“确定”   完全符合名称。

     

出现“预览更改”对话框,并显示将要显示的所有名称   更新。

答案 2 :(得分:0)

对于简单查询,我已经能够使用Instant SQL Formatter工具了。

将查询粘贴到编辑器中,在“输出”下拉列表中选择List DB Object,然后点击Format SQL按钮。

该页面将输出查询使用的表和字段列表。这些字段将使用表名限定,如上例所示。

enter image description here