Sql server SQL-what';查找列所属表的最佳方法是什么?

Sql server SQL-what';查找列所属表的最佳方法是什么?,sql-server,tsql,Sql Server,Tsql,在SQLServer环境中,在维护涉及多个表的SQL查询时,我通常需要弄清楚特定列属于哪个表 不幸的是,查询中的符号不是TableName.ColumnName,而是ColumnName 除了手动查看每个表的列定义外,是否有其他方法可以查找该列从哪个表中提取?我在想我可以在IDE(ie管理工作室)或T-SQL语句中使用的东西。。。但在这一点上,我对任何事情都持开放态度 另外一点:我需要在本地执行此操作,而无需通过网络推送信息,也无需在SQL Management Studio之外下载其他工具。。

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

不幸的是,查询中的符号不是
TableName.ColumnName
,而是
ColumnName

除了手动查看每个表的列定义外,是否有其他方法可以查找该列从哪个表中提取?我在想我可以在IDE(ie管理工作室)或T-SQL语句中使用的东西。。。但在这一点上,我对任何事情都持开放态度


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

好吧,您可以同时尝试这两种方法

在管理工作室:

  • 标记您的查询
  • 右击
  • 在编辑器中设计查询
您将获得一个图形界面,它将使您更容易看到哪个列来自哪个表

否则,您可以查询(如果您想自动查询)信息\u模式:

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

对于简单的查询,我已经能够使用该工具


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

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


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

刮取以完全限定解决方案中.sql文件中包含的所有名称

在解决方案资源管理器中,右键单击包含 要更新的名称,指向重构,然后单击 完全限定名称

此时将显示“预览更改”对话框,并显示将更改的所有名称 更新


为什么符号是
ColumnName
而不是
TableName.ColumnName
或者至少是
TableAlias.ColumnName
?最迟当两个表具有相同的列时,您必须声明该表。不,没有简单的方法。您正在执行查询解析器的工作。不仅要扫描
联接中涉及的所有表的列名,还要处理列别名、子查询等。如果是运行的查询,服务器能够解析对每个列的所有引用。您是否尝试过在设计视图中查看查询而不是文本?@TimSchmelter表之间的列名不相同。有这么多的连接,外部应用于多个表和函数等。。。很难分辨哪一张表是列在所有东西中间的。好主意。。。然而,我正在处理我不想在互联网上发布的数据。我将编辑我的问题以澄清。老实说,我没有想到在我的工作站之外有一个解决方案。如果你必须将它连接到数据,这是一个公平的观点;我用它来解析SQL代码,它通常不包含任何敏感信息。这似乎不适用于未使用VS部署的数据库。即使创建一个新的数据库项目,添加查询(作为.SQL文件)并进行重构,也只会生成添加模式信息,而不是父项的名称。如果我通过右键单击数据库项目或脚本文件进行重构,就会发生这种情况。查询编辑器肯定比手动查找要容易,它甚至使用别名+1.