Vit*_*lov 2 t-sql sql-server collation
我在tempdb中有临时表,在数据库中有一个表.当我用这个2表的联合构造查询时.有一个错误:
无法解决UNION操作中"Cyrillic_General_CI_AI"和"Cyrillic_General_CI_AS"之间的排序规则冲突.
drop table [sysdb].[##temp table];
create table [sysdb].[##temp table](a varchar);
insert into [sysdb].[##temp table] (a) values ('a'),('b');
select grade_name from [mybase].[DDS].[testtable]
union
select * from [sysdb].[##temp table];
Run Code Online (Sandbox Code Playgroud)
我已使用此查询在数据库中测试了我的排序规则参数:
SELECT DATABASEPROPERTYEX('mybase', 'Collation') as collation_dwh,DATABASEPROPERTYEX('tempdb', 'Collation') as collation_tempdb
Run Code Online (Sandbox Code Playgroud)
结果是数据库的整理是相同的:
collation_dwh | collation_tempdb
Cyrillic_General_CI_AI | Cyrillic_General_CI_AI
如何解决这个问题?
如果您明确设置了排序规则,union它应该没问题:
select grade_name collate Cyrillic_General_CI_AI from [mybase].[DDS].[testtable]
union
select a collate Cyrillic_General_CI_AI from [sysdb].[##temp table];
Run Code Online (Sandbox Code Playgroud)
请注意,列可以具有与数据库不同的排序规则.
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |