我正在一个项目上,我的任务是创建一系列的Union查询,以编译来自具有相同结构的不同数据库的数据。这些查询中的某些查询非常宽,包含大量列。不,我不能更改列数。当我尝试创建查询时,它给出了归类错误。通过添加到该列中的以下命令,我可以轻松解决该问题:
收集DATABASE_DEFAULT
现在,问题是我必须对50个或6个不同的数据库和200多个列使用UNION进行50多个查询。每次我将该命令添加到列中时,我还必须在列中添加别名,否则我会丢失名称。有没有办法在不必向每列添加COLLATE子句的情况下找到更有效的方法的想法?
答案 0 :(得分:2)
您可以利用SSMS列编辑模式。这就是它的工作方式。
SELECT P .AB |
, QR.CDEFG
, S .HIJK
FROM P
JOIN QR ON ...
-- etc
SELECT P .AB |
, QR.CDEFG |
, S .HIJK |
FROM P
JOIN QR ON ...
COLLATE DATABASE_DEFAULT AS
,此文本将立即显示在所有行上:SELECT P .AB COLLATE DATABASE_DEFAULT AS |
, QR.CDEFG COLLATE DATABASE_DEFAULT AS |
, S .HIJK COLLATE DATABASE_DEFAULT AS |
FROM P
JOIN QR ON ...
AB
CDEFG
HIJK
SELECT P .AB COLLATE DATABASE_DEFAULT AS AB
, QR.CDEFG COLLATE DATABASE_DEFAULT AS CDEFG
, S .HIJK COLLATE DATABASE_DEFAULT AS HIJK
FROM P
JOIN QR ON ...