• 陇上阳坝“春意闹” 人勤春早采茶忙  2019-09-17
  • 女教师课上画高树讲高数 学生原来高数真是树! 2019-09-17
  • 居然618理想生活狂欢季盛大启航 尖叫、嗨翻、乐道进入科技快车道 2019-09-16
  • 【十九大·理论新视野】动漫:“美丽中国”如何绘就 2019-09-16
  • 第十七届中国国际古典家具展览会5月18日将在申城启幕 2019-09-15
  • 苗山脱贫影像志——父母在 不远行 2019-09-15
  • 补时绝杀!英格兰2-1突尼斯 凯恩梅开二度 2019-09-14
  • 刘嘉玲:长江后浪一直涌来 2019-09-07
  • 端午话诗词,感悟习近平眼中的优秀传统文化 2019-09-07
  • 主持人资料库——鲁豫 2019-08-31
  • 胡萝卜小麦百合煲瘦肉 健脾益气又安神 2019-08-31
  • 花莲地震受伤大陆游客离台返京 2019-08-28
  • 她在市中心,看山看海,她住冰岛 2019-08-28
  • 韩国前总统李明博体力不支 用拳头撑墙走进法庭受审 2019-08-27
  • 全国首列“研学旅行专列”兰州启程 2019-08-22
    您当前位置:成都网站制作 >> 新闻频道 >> 网络动态 >> 浏览文章
     

    后一万能5码99%中奖率:自动清理 MSSQL Server Table Collation问题的解决方法

    发布时间:2013年02月08日 来源:安徽十一选五开奖结果 www.x8761.com   作者:成都网站制作 
    收藏到:

    安徽十一选五开奖结果 www.x8761.com 在一个团队项目中,没有约定好Collation, 在 MS SQL Server中编程就会遇到这样的问题:
    Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.

    因为编码问题,不同编码的字符串并不能直接进行比较,这种有两个解决方法,1是在 query中 指定 用某一个collation进行比较, 另外一个就是修改column的 collation type 来避免这种错误。

    第二种方法,一个一个column改起来很累,写了个script,除了 被当作 constraints比如 primary key, foreign key之外的 varchar, char,nvarchar 都可以统一修改成一个collation…

    完整sql代码:
    复制代码 代码如下:
    declare @CollationName varchar(500);
    set @CollationName = 'SQL_Latin1_General_CP1_CI_AS'
    create table #tmp (sqlStr varchar(max));
    insert into #tmp
    select 'alter table [' + o.name + '] alter column [' + c.name + ']' +
    (case c.system_type_id when 167 then ' varchar(' when 175 then ' char(' else ' nvarchar(' end)
    + convert(varchar,c.max_length) + ') collate ' + @CollationName
    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) and collation_name<>@CollationName
    and c.name not in (
    select cc.COLUMN_NAME
    from
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE cc
    where
    cc.TABLE_NAME = pk.TABLE_NAME
    and cc.CONSTRAINT_NAME = pk.CONSTRAINT_NAME)
    while (exists (select * from #tmp))
    begin
    declare @sqlStr varchar(max);
    select @sqlStr=(select top 1 sqlstr from #tmp);
    exec(@sqlStr)
    delete from #tmp where [email protected]
    end
    drop table #tmp;

    相关阅读:

    下一篇:AspJpeg V2.0软件中文版注册码
    上一篇:SQL Server中减小Log文件尺寸的方法分享
    1. 安徽十一选五开奖结果 | 关于我们 | 网站建设 | 网站优化 | 整合营销 | 代理产品 | 成功案例 | 热门关键词| 安徽十一选五开奖结果
    2. 地址:四川省成都营门口路439号幸福丽景B座306室
    1. 四川冠辰科技开发有限公司安徽十一选五开奖结果 版权所有 · 2013, All Rights Reserved.
  • 陇上阳坝“春意闹” 人勤春早采茶忙  2019-09-17
  • 女教师课上画高树讲高数 学生原来高数真是树! 2019-09-17
  • 居然618理想生活狂欢季盛大启航 尖叫、嗨翻、乐道进入科技快车道 2019-09-16
  • 【十九大·理论新视野】动漫:“美丽中国”如何绘就 2019-09-16
  • 第十七届中国国际古典家具展览会5月18日将在申城启幕 2019-09-15
  • 苗山脱贫影像志——父母在 不远行 2019-09-15
  • 补时绝杀!英格兰2-1突尼斯 凯恩梅开二度 2019-09-14
  • 刘嘉玲:长江后浪一直涌来 2019-09-07
  • 端午话诗词,感悟习近平眼中的优秀传统文化 2019-09-07
  • 主持人资料库——鲁豫 2019-08-31
  • 胡萝卜小麦百合煲瘦肉 健脾益气又安神 2019-08-31
  • 花莲地震受伤大陆游客离台返京 2019-08-28
  • 她在市中心,看山看海,她住冰岛 2019-08-28
  • 韩国前总统李明博体力不支 用拳头撑墙走进法庭受审 2019-08-27
  • 全国首列“研学旅行专列”兰州启程 2019-08-22
  • 中超降级 安徽11选5任五 赌大小单双稳赢不贪 二八杠作弊技术 真人斗地主赚钱 聚享游官网 极速飞艇全天计划群 双色球坐标连走势图 新疆35选7买8个号码钱 浙江超级大乐透走势图 河南快三三同号遗漏 安徽十一选五18101058 幸运农场综合走势图 体彩排列三走势图综合版 辽宁11选5网上投注