【问题标题】:Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the UNION operation无法解决 UNION 操作中“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS”之间的排序规则冲突
【发布时间】:2016-03-10 10:22:07
【问题描述】:

我必须加入 2 个视图并创建从视图中填充日期的表格。

但我收到此错误:

无法解决之间的排序规则冲突 UNION 中的“SQL_Latin1_General_CP1_CI_AS”和“Latin1_General_CI_AS” 操作。

CREATE VIEW [dbo].[Destinations_1415_1516_Union]
AS
SELECT *
FROM
[dbo].[Destinations_1415] 
UNION
SELECT *
FROM
[dbo].[Destinations_1516] 
GO

请提出解决方法

【问题讨论】:

  • 查找表之间排序规则不同的列。将 collat​​e 子句添加到选择之一以强制进行所需的排序规则。 (如果您使用 UNION ALL,则不需要这样做 - 因为没有进行重复消除。)
  • 是的,我已经确定了该列,请告诉我它的语法。谢谢!
  • select ..., thatcolumn collate wanted_collation, ...
  • @ArunaRaghunam 你能看看我在this页面上的回答吗?

标签: sql reporting-services view union collation


【解决方案1】:

您好,同意上面的人所说的,如果您执行以下操作:

SELECT ColumnA COLLATE DATABASE_DEFAULT
    ,ColumnB COLLATE DATABASE_DEFAULT
    --,... (rest of Columns)
FROM [dbo].[Destinations_1415] 
UNION 
SELECT ColumnA COLLATE DATABASE_DEFAULT
    ,ColumnB COLLATE DATABASE_DEFAULT
    --,... (rest of Columns)
FROM [dbo].[Destinations_1516]

这应该可以解决您的问题,您只需要确定存在排序错误的列。

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多