【发布时间】:2018-07-04 21:20:47
【问题描述】:
我正在从事一个项目,我的任务是创建一系列联合查询来编译来自不同数据库的具有相同结构的数据。其中一些查询非常广泛,包含大量列。不,我无法更改列数。当我尝试创建查询时,它给出了排序规则错误。我可以通过添加到列中的这个命令轻松解决这个问题:
整理数据库_DEFAULT
现在,问题是我必须使用 UNION 对 5 或 6 个不同的数据库和 200 多列进行 50 多个查询。每次我将该命令添加到列时,我还必须为列添加别名,否则我会丢失名称。如果有更有效的方法可以做到这一点,而不必将 COLLATE 子句添加到每一列,有什么想法吗?
【问题讨论】:
-
SQL 方面我对您没有什么好的建议,但是要自动将排序规则和别名添加到您的列中,您可以使用正则表达式。列出您的列(每列在单独的行上)并执行正则表达式查找和替换:
^(.*)$到\1 COLLATE DATABASE_DEFAULT AS \1。请注意,\1是反向引用,您的文本编辑器可能会使用$1。 -
如何用
COLLATE DATABASE_DEFAULT创建一个VIEW
标签: sql sql-server collation