表中与当前库的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)

时间: 2024-08-28 19:47:24

表中与当前库的collation不一致的字段的相关文章

查找表中多余的重复记录(多个字段)

3.查找表中多余的重复记录(多个字段) select * from vitae awhere (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1) 注意这里 in可以有多个字段

查询和删除表中重复数据sql语句

  1.查询表中重复数据.select * from peoplewhere peopleId in (select   peopleId   from   people   group   by   peopleId   having   count(peopleId) > 1)2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where peopleId   in (select   peopleId

如何删除表中的重复记录只保留其中一条?

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people  where peopleId  

sqlite expert导入excel表格 (包括使用问题、以及把 一个表的数据插入到另一个表中)

一.sqlite导入excel 1.打开要导入的excel --- 另存为(2007版点击左上角OFFICE图标即可找到) --- 保存类型:CSV类型 (提示什么不兼容什么的,一律点确定.) 2.打开sqlite expert ,选择建好的数据库文件(或者是导入的已存在的db文件,或者是自己新建一个.db数据库文件). 右击文件名---选择最后一个import text file(CSV,TSV) 3.(如果没有建过和这个excel名相同的表)右边Destination选择第一项new tab

如何查出同一张表中字段值重复的记录

如何查出同一张表中字段值重复的记录 (2013-03-25 11:28:51) 转载▼ 比如现在有一人员表(表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2where p1.idp2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL

SqlServer查找表中多余的重复记录

1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleId in (select peo

查询和删除数据表中重复数据的sql

1.查询表中重复数据.select * from people where peopleId in (select   peopleId   from   people   group   by   peopleId   having   count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId   in (select   peopleI

如何基于OM模型使用C#在程序中给SharePoint的BCS外部数据类型的字段赋值

概述: 外部内容类型和数据,SharePoint从2010这个版本开始就对BCS提供非常强大的支持,点点鼠标就可以取代以前直接编辑XML的方式来设置SharePoint到SQL数据库的连接.非常方便地在SharePoint中修改删除SQL数据库的数据,并且SharePoint还提供了字段级的支持,您可以在任何List当中插入一个External Data外部数据字段,用来引用SQL表中的某一行,并显示指定字段的值. 我们经常要用到程序去自动滴修改值,这个类型栏的值,是可以直接通过“Iiem[Fi

捕获mssqlservice 修改表后的数据,统一存储到特定的表中,之后通过代码同步两个库的数据

根据之前的一些想法,如果有A,B 两个数据库, 如果把A 用户通过界面产生的更新或者插入修改,操作的数据同步更新到B 库中,如果允许延时2分钟以内 想法一: 通过创建触发器 把变更的数据和对应的表名称统一存储到某个特定的表,然后通过程序获取转换成sql 更新B数据库中的表,本文主要说明使用该方法 想法二: 通过CDC 记录变更的内容, 园内搜索:  SQL Server 变更数据捕获(CDC)监控表数据  即可 . 以下是测试: drop database T_Mytest create dat