sql数据库COLLATE
发布网友
发布时间:2022-04-08 21:49
我来回答
共3个回答
热心网友
时间:2022-04-08 23:18
数据虽然完全相同,但是的两个数据库实例的COLLATE设置不同,两者不兼容。这种情况通常出现在与临时表进行连接的时候。临时表创建在tempdb数据库里,它默认是继承了SQL Server实例的COLLATE设置。如果你的用户数据库是从另外一台服务器附加上来的话,很可能是另一中COLLATE设置。两者不兼容就会出现这种错误。
解决办法:可以在创建临时表时,为文本字段指定 COLLATE DATABASE_DEFAULT, 从而明确指定从当前用户数据库继承 COLLATE 设置。
热心网友
时间:2022-04-09 00:36
排序冲突了
检查下列表的下列字段的排序规则
TB_ApproveList UserHRID
TB_Users HRID UserCatID
TB_SeniorGroup PK_CategoryID
查看方法
可以在企业管理器中,查看表每个字段的排序规则(打开表设计窗口-> 排序规则) 在涉及多表的联结查询中,如果联结字段采用不同的排序规则,则出现冲突
解决办法有四种:
1、在查询时指定排序规则,这样无须对数据库进行任何修改
select * from a join b on a.aa=b.bb collate chinese_prc_ci_as --(可以任意指定一种sqlserver支持的排序规则)
2、修改联结字段的排序规则,使之统一
可以在企业管理器中,修改表的设计(打开表设计窗口-> 排序规则)
也可以用sql语句
alter table a ALTER COLUMN aa char(10) COLLATE Latin1_General_CI_AS
3、使用sql server的工具Rebuildm.exe 更改 Microsoft SQL Server2000 实例的排序规则设置
4、重新安装sql server,选择需要的排序规则
热心网友
时间:2022-04-09 02:11
错误说因为collation设置不一样的字段不能做join造成的,数据一样不代表表结构一样