码迷,mamicode.com
首页 > 数据库 > 详细

批量更改数据库COLLATION

时间:2014-06-12 18:03:38      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   java   http   

      企业内部有很多系统是繁体的,由于各方面的原因,公司目前正在实行简体化,但各系统中又有数据间的交换,所以系统只能一个一个的更改,以防同时出现过多的问题。由于原先数据库只能存储繁体,而原先已存在的数据则可以不必转换为简体,照用就可以了。我们新的数据库均采用Chinese_PRC_BIN collation, 所以我们直接把旧系统备份一份,然后恢复到新的服务器上,同时更改数据库的collation. 但是只更改了数据库的COLLATION还是不够的。要把数据库里面的表都同时更改了才可以。但我们的数据库有100多张表,而且后续的其它系统远比现在这个系统复杂的多。表的数量也大很多。所以我们需要找到一个方案可以批量更改的。经过一翻努力及测试,终于找到了解决的方法,特意写下来,看有没有相同需求的朋友。首先产生代码。再把得到的结果放到SQL查询器执行便可。

bubuko.com,布布扣
select ALTER TABLE  + quotename(TABLE_NAME) +  

        ALTER COLUMN  + quotename(COLUMN_NAME) +   + quotename(DATA_TYPE) +  

CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 then (max) 

 WHEN DATA_TYPE in (text,ntext) then ‘‘ 

 WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL  

    THEN (+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+) )  

      ELSE isnull(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH), ) END  

      + COLLATE Chinese_PRC_BIN  + CASE IS_NULLABLE  

                WHEN YES THEN NULL 

                WHEN NO THEN NOT NULL 

                END 

  from  INFORMATION_SCHEMA.COLUMNS,sys.all_objects o  

 where COLLATION_NAME=Chinese_Taiwan_Stroke_BIN AND TABLE_NAME=o.name and o.type=U

 order by quotename(TABLE_NAME) 
bubuko.com,布布扣

旧系统:

bubuko.com,布布扣

 

bubuko.com,布布扣

批量更改数据库COLLATION,布布扣,bubuko.com

批量更改数据库COLLATION

标签:style   class   blog   code   java   http   

原文地址:http://www.cnblogs.com/Geton/p/3781911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!