首页 > 代码库 > 表中与当前库的collation不一致的字段
表中与当前库的collation不一致的字段
--对于与当前数据库排序规则不一致的字段。
select o.name, c.name ,collation_name
from sys.columns c,
sys.objects o
where
c.object_id=o.object_id
and o.type=‘U‘
and c.system_type_id in (167,175,231) --varchar\char\nvarcharsysname
and collation_name<>DATABASEPROPERTYEX(DB_name(),‘collation‘)
比较常见的错误 :Cannot resolve the collation conflict between "Chinese_PRC_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
这个错误多见于表中的字段的排序规与数据默认的规则不一样的错误。
解决办法 :
1、在比较、排序等字段指定规则。COLLATE Chinese_PRC_CI_AS
2、修改字段的排序规则。ALTER Table [表名] ALTER COLUMN [字段名] [数据类型]([长度]) collate Chinese_PRC_CI_AS
这种方式有风险,可能会将你数据搞成乱码。所以,需要千万小心。
3、重建表就指定使用默认规则。create table #Temp (content nvarchar(10) collate database_default)
表中与当前库的collation不一致的字段