我有以下SQL脚本,试图对位于同一数据库上的两个表执行联合。一个表似乎具有不同的排序规则类型
select * from ns.TurnsCOS
union all
select * from ns.TurnsValue
运行后,出现以下错误
我已经阅读了其他有关解决排序规则问题的文章,但是在from子句之后添加'Collate Latin1_General_Bin'似乎无效
如何最好地解决两个表之间的排序规则问题?
答案 0 :(得分:3)
您必须分别更改每列的排序规则,例如
select OtherCols, Col1, Col6, Col7
from ns.TurnsCOS
union all
select OtherCols, Col1 collate SQL_Latin1_General_CP1_CI_AS, Col6 collate SQL_Latin1_General_CP1_CI_AS, Col7 collate SQL_Latin1_General_CP1_CI_AS
from ns.TurnsValue
您可以按照以下方式永久更改列排序规则-但您应格外谨慎,因为这样可能会与其他现有查询冲突:
ALTER TABLE [TableName] ALTER COLUMN [Col_Name]
[Existing Data-Type] COLLATE [New_Collation] [NULL | NOT NULL];
GO