博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER 简体与繁体 定序 轉換
阅读量:5342 次
发布时间:2019-06-15

本文共 1894 字,大约阅读时间需要 6 分钟。

简体中文的排序规则名称是: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

你可能感兴趣的文章
iOS10 国行iPhone联网权限问题处理
查看>>
洛谷 P1991 无线通讯网
查看>>
[HIHO1184]连通性二·边的双连通分量(双连通分量)
查看>>
Codeforces Round #178 (Div. 2) B. Shaass and Bookshelf 【动态规划】0-1背包
查看>>
SparkStreaming 源码分析
查看>>
【算法】—— 随机音乐的播放算法
查看>>
mysql asyn 示例
查看>>
DataGrid 点击 获取 行 ID
查看>>
git 使用
查看>>
边框圆角方法
查看>>
asp.net WebApi自定义权限验证消息返回
查看>>
php中eval函数的危害与正确禁用方法
查看>>
20172315 2017-2018-2 《程序设计与数据结构》第十一周学习总结
查看>>
MySQL添加、修改、撤销用户数据库操作权限的一些记录
查看>>
ViewBag & ViewData
查看>>
关于谷歌浏览器Chrome正在处理请求的问题解决
查看>>
Git核心技术:在Ubuntu下部署Gitolite服务端
查看>>
平面波展开法总结
查看>>
建造者模式
查看>>
ArraySort--冒泡排序、选择排序、插入排序工具类demo
查看>>