实际的列名而不是T-SQL中的*

时间:2013-01-04 21:41:45

标签: sql sql-server sql-server-2008 tsql

我有以下查询(样本)

SELECT *
FROM Table_1 1 INNER JOIN
Table_2 2 ON 1.C1 = 2.C1 INNER JOIN
Table_3 3 ON 2.C2 = 3.C2 INNER JOIN
Table_4 4 ON 3.C3 = 4.C3

输出超过10列。

当我将鼠标悬停在*(在“SELECT”之后)时,我会得到一个工具提示,其中包含来自这4个表的所有不同列名。

有没有办法轻松地从*切换到那些列名而不是在SELECT之后输入每一个?

谢谢

4 个答案:

答案 0 :(得分:7)

我假设你在Management Studio工作。如果是这样,请转到对象资源管理器并打开表。左键单击Columns文件夹并将其拖到查询窗口。将列出该表的所有列。

答案 1 :(得分:3)

从SQL Server Management Studio的对象资源管理器中,您可以展开一个表(这样您就可以看到列,键,索引等文件夹细分)。将Columns文件夹拖到查询窗口将为您提供逗号分隔的列名列表。

请注意:如果您的四个表中有重复的列名,则必须正确地量化这些列。

答案 2 :(得分:3)

我看到你的查询引用了4个表。

为避免在对象资源管理器中找到并展开4个不同的对象,您还可以在管理工作室中选择查询文本,右键单击并选择“在编辑器中设计查询”,然后从扩展列表中复制列名称

复制列名而不是简单地按OK就可以避免设计师弄乱您的格式以及可能的查询。

如果您经常需要,扩展通配符是Redgate SQL Prompt功能的一部分。

答案 3 :(得分:0)

如果使用DataGrip编写SQL,可以按Alt + Enter - >展开列列表enter image description here