【发布时间】:2020-08-13 13:54:11
【问题描述】:
在加入 3 个以上的表并使用 SELECT * 时使用 SSMS,我想知道是否有一种简单的方法(动态)在结果集中包含表名和列名,而无需输入所有所需的列.
例如:
Table1
Table2
Table3
SELECT *
FROM Table1 t1
LEFT JOIN Table2 t2 ON t2.keyA = t1.keyA
LEFT JOIN Table3 t3 ON t2.keyB = t3.keyB
尝试产生类似的输出
Table1-Column1, Table2-Column1, Table3-Column1
或
t1.Column1, t2.Column1, t3.Column1
【问题讨论】:
-
不,没有。您需要正确定义列及其别名。您可以使用动态 SQL,但除非您精通该语言,并且了解它所附带的所有注意事项,否则您不应该使用它。如果您精通该语言,您就会知道正确的答案是正确地写出您的查询。
-
有扩展通配符的 SSMS 插件。我有一个来自 ApexSQL Refactor 的,需要支付许可费。
-
@larnu - 如果查询的目的是临时的或快速研究某些东西,那么浪费时间从多个连接表中输入 50 多列是没有意义的。
-
如果它是一个临时且快速的解决方案,那么使用相同的名称将不是问题,@Seth,因为您可以在您可能将数据复制到的任何位置进行修复。跨度>
标签: sql sql-server datatable