• 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
     
  • 相关阅读:
    iTerm2 颜色配置
    IOS_问题: Xcode8 安装KSImageName插件, 编代码就崩了
    IOS_设置启动图片若干问题
    Android 多国语言
    Reveal 配置与使用
    自定义代码块
    Android 动画
    SQL
    dialog
    2016-1-18UIlabel学习,正则表达式
  • 原文地址:https://www.cnblogs.com/conghuip/p/2194036.html
Copyright © 2020-2023  润新知