关闭

有关表编码造成使用COLLATE database_default的问题

标签: databasesql数据库
1257人阅读 评论(0) 收藏 举报
因有两个表的编码不同,所以我在做关连时用如下语句(COLLATE database_default)可执行成功
select a.*
from dbo.Call_id as a , Call_Detail as b
where a.callid COLLATE database_default = b.callid COLLATE database_default
and calltime >= '2009-01-01' and calltime < '2009-02-01'

但现在写另一语句对以上call_id 和call_detail两个表进行union all
我写为如下但总提示出错
select a1,a2 from dbo.Call_id COLLATE database_default
union all
select a1,a2 from Call_Detail COLLATE database_default

请问上面这种union all要如何改呢? 谢谢!
SQL code

select a1,a2 COLLATE database_default from Call_id

union all

select a1,a2 COLLATE database_default from Call_Detail




SQL code



select a1,a2 COLLATE database_default from Call_id

union all

select a1,a2 COLLATE database_default from Call_Detail






引用 1 楼 jia_guijun 的回复:
SQL codeselect a1,a2 COLLATE database_default from Call_id
union all
select a1,a2 COLLATE database_default from Call_Detail

頂.


因有两个表的编码不同,所以我在做关连时用如下语句(COLLATE database_default)可执行成功
select a.*
from dbo.Call_id as a , Call_Detail as b
where a.callid COLLATE database_default = b.callid COLLATE database_default
and calltime >= '2009-01-01' and calltime < '2009-02-01'

但现在写另一语句对以上call_id 和call_detail两个表进行union all
我写为如下但总提示出错
select a1,a2 from dbo.Call_id COLLATE database_default
union all
select a1,a2 from Call_Detail COLLATE database_default

请问上面这种union all要如何改呢? 谢谢!
SQL code



select a1,a2 from dbo.Call_id

union all

select a1,a2 from Call_Detail






学习


一旦数据库建立如果不是用特别指定表里字段的COLLATATION是随数据库的,所以才叫DATABASE DEFAULT当跨库或不同collatation表时,必须每个字段改写,不能对表来改写因为表好像没有这个属性吧。


6楼说得对,我试过不能用表来conllatation

但对字段来改写要如何写呢? 谢谢!


搞定了,
field COLLATE database_default


自已搞定了,原来是

field COLLATE database_default

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:141680次
    • 积分:2057
    • 等级:
    • 排名:第18637名
    • 原创:73篇
    • 转载:14篇
    • 译文:0篇
    • 评论:14条
    最新评论