SQL SERVER 简体与繁体 定序 轉換

简体中文的排序规则名称是:Chinese_PRC_CI_AS,

繁体中文的排序规则名称则是:Chinese_Taiwan_Stroke_CI_AS

更改数据库定序:

ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE DatabaseName COLLATE Chinese_Taiwan_Stroke_CI_AS
ALTER DATABASE DatabaseName SET MULTI_USER WITH ROLLBACK IMMEDIATE

 

-- 修改資料庫定序為 Chinese_PRC_CI_AS
ALTER DATABASE DatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE DatabaseName COLLATE Chinese_PRC_CI_AS;
ALTER DATABASE DatabaseName SET MULTI_USER;

-- 修改資料表定序為 Chinese_PRC_CI_AS
ALTER TABLE tableName ALTER COLUMN colName nvchar(length) 

COLLATE
Chinese_PRC_CI_AS;


要注意的是,修改資料庫的定序設定,並不會變更該資料庫內既有物件的定序設定

 

循環修改資料庫表中各字段的定序:

首先執行

declare @table_name nvarchar(50)
declare @Col_name nvarchar(50)
declare @DATA_TYPE nvarchar(50)
declare @MAX_LENGTH nvarchar(50)

declare cu cursor for
SELECT
    a.TABLE_NAME                as 表格名稱,
    b.COLUMN_NAME               as 欄位名稱,
    b.DATA_TYPE                 as 資料型別,
    b.CHARACTER_MAXIMUM_LENGTH  as 最大長度
FROM
    INFORMATION_SCHEMA.TABLES  a
    LEFT JOIN INFORMATION_SCHEMA.COLUMNS b ON ( a.TABLE_NAME=b.TABLE_NAME )
WHERE
    TABLE_TYPE='BASE TABLE'
ORDER BY
    a.TABLE_NAME, ordinal_position

open cu
fetch next from cu into @table_name,@Col_name,@DATA_TYPE,@MAX_LENGTH
begin tran
    WHILE @@FETCH_STATUS = 0
    begin
        if @DATA_TYPE ='char' or @DATA_TYPE ='varchar' or @DATA_TYPE ='nchar' or @DATA_TYPE ='nvarchar'
            print 'ALTER TABLE ' +@table_name+ ' ALTER COLUMN ['+ @Col_name + ']'
            +@DATA_TYPE+ '('+@MAX_LENGTH+')  COLLATE Chinese_Taiwan_Stroke_CI_AS;' -- Chinese_PRC_CI_AS
        if @DATA_TYPE ='text' or @DATA_TYPE ='ntext'
            print 'ALTER TABLE ' +@table_name+ ' ALTER COLUMN ['+ @Col_name + ']'
            +@DATA_TYPE+ '  COLLATE Chinese_Taiwan_Stroke_CI_AS;' -- Chinese_PRC_CI_AS
        fetch next from cu into @table_name,@Col_name,@DATA_TYPE,@MAX_LENGTH
    end

close cu
deallocate  cu
    if @@error=0
        begin
             commit tran
        end
    else
         begin
                      rollback tran
        end

然后執行上面產生的SQL
 

 

转载于:https://www.cnblogs.com/conghuip/archive/2011/09/28/2194036.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值