MSSQLデータベースの並べ替え規則はどうやって変更しますか?


1.sp_helpsport SELECT SERVERRPROPERT('Collation')はあなたの並べ替え規則を確認します。でも、あなたのこれは文字セットと関係があるべきです。2.サーバの並べ替え規則を変更してSQL Server 2005の例のデフォルトの並べ替え規則を変更する操作は複雑かもしれません。ユーザデータベースおよびこれらのデータベースのすべてのオブジェクトを再作成するために必要なすべての情報またはスクリプトを確保するためのステップを含む。ツール(例えば大容量コピー)を使ってすべてのデータをエクスポートします。すべてのユーザデータベースを削除します。setupコマンドのSQLCOLATION属性に新たなソート規則を指定するマスターデータベースを再生成します。例えば、start/wait setup.exe/qb INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Enggine REBUILD DATABASE=1 SAPWD=test SQLCOLATION=SQL_Latin 1_General.CP 1_CI_AIマスターデータベースの再生成に関する詳細は、SQL Server 2005のマスターデータベースの再生成方法を参照してください。すべてのデータベースおよびこれらのデータベースのすべてのオブジェクトを作成します。すべてのデータをインポートします。なお、SQL Server 2005のデフォルトの並べ替え規則は、作成した新しいデータベースごとに指定することができます。3.データベースの並べ替え規則を設定し、変更して新しいデータベースを作成する場合、下記の内容の一つを使って並べ替え規則を指定できます。CREATE DATABASE文のCOLLATEサブ句。SQL Server Management Studio.SQL管理対象(SMO)のDatabase.Coollation属性です。ソート規則が指定されていない場合は、サーバのソート規則を使用します。ALTER DATABASE文のCOLLATEサブフレーズを使用して、ユーザーデータベースに作成された任意の新しいオブジェクトの並べ替え規則を変更することができます。このステートメントを使うと、既存のユーザーが定義したテーブルの列の並べ替え規則は変更できません。ALTER TABLEのCOLLATEサブフレーズを使用して、これらの列の並べ替え規則を変更することができます。データベースの並べ替え規則を変更するには、次の内容を変更する必要があります。データベースのデフォルトの並べ替え規則は、データベース内で後続するすべての列、ユーザー定義のデータタイプ、変数、パラメータに適用されます。データベースで定義されたオブジェクトに基づいてSQL文で指定されたオブジェクト識別子を解析する場合も、新しいデフォルトの並べ替え規則が使用されます。システムテーブル内の任意のchar、varhar、text、nchar、nvarrharまたはntxt列を新しいソート規則を使用するように変更します。記憶プロセスとユーザ定義関数の既存のすべてのchar、varhar、text、nchar、nvarhar、または、ntxtパラメータとスカラー戻り値を、新たなソート規則を使用するように変更します。char、varhar、text、nchar、nvarrharまたはtextシステムデータタイプおよびこれらのシステムデータタイプに基づくすべてのユーザが定義するデータタイプを、新たなデフォルトソート規則を使用するように変更します。SQLコード:1.データベースの文字セットを
 
alter database dbname collate Chinese_PRC_CI_AS
.--1.データベースの並べ替え規則
 
CREATE DATABASE db COLLATE Chinese_PRC_CI_AS
GO
ALTER DATABASE db COLLATE Chinese_PRC_BIN
GO
/*=========================================================================================================================================================================79132データベース
 
CREATE TABLE tb(
col1 varchar(10),
col2 varchar(10) COLLATE Chinese_PRC_CI_AS)
GO
ALTER TABLE tb ADD col3 varchar(10) COLLATE Chinese_PRC_BIN
GO
ALTER TABLE tb ALTER COLUMN col2 varchar(10) COLLATE Chinese_PRC_BIN
GO
方法1.SQLをインストールする時、大文字と小文字を区別して、またはインストールしてからmasttarを再構築し、サイズCを区別することを選択します。\Program Files\Microsoft SQL Server\80\tools\Binn\rebuildm.exe方法2.sql server 8.0以上のバージョンを選択してください。7.0以下は、alter databaseデータライブラリCOLLATEneseをサポートしません。PRC_CS_ASは並べ替え規則を変更して、サイズ書きに敏感な並べ替え規則を変更します。もし一つのテーブルだけ修正したら、alter table文でライブラリのデフォルトの並べ替え規則を修正して、alter datebase文を使ってサーバー全体のデフォルトの並べ替え規則を修正したら、Rebuildm.exeでマスターライブラリを再構築します。並べ替え規則を指定すればいいです。このようにreplaceは並べ替え規則を書かなくてもいいです。例
 
DECLARE @a varchar(10),@b varchar(10)
SELECT @a='a',@b='A'
-- Chinese_PRC_CI_AS
SELECT CASE WHEN @a COLLATE Chinese_PRC_CI_AS = @b THEN '@a=@b' ELSE '@a<>@b' END
-- :@a=@b
-- Chinese_PRC_BIN
SELECT CASE WHEN @a COLLATE Chinese_PRC_BIN = @b THEN '@a=@b' ELSE '@a<>@b' END
-- :@a<>@b
は並べ替え規則を指定すれば、Windows並べ替え規則名はCOLLATEサブルーチンでWindows並べ替え規則名を指定できます。Windows並べ替え規則の名称は、並べ替え規則のインジケータと比較スタイルから構成されています。構文
 
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--
パラメータCollation Designatorは、Windows並べ替え規則で使用される基本的な並べ替え規則を指定します。基本的な並べ替え規則は、辞書による並べ替えを指定する場合、その並べ替え規則のアルファベットまたは言語を使用して、非ユニックな文字データを格納するためのコードページを含みます。例えばLatin 1_Generalまたはフランス語は、両方ともコードページ1252またはトルコ語を使用しており、コードページ1254を使用している。CaseSensitivity CIは、大文字と小文字を区別せず、CS指定で大文字と小文字を区別することを指定します。AccentSensitivity AIは、アクセントを区別せず、AS指定でアクセントを区別することを指定します。Kanaype Sensitive Omittedは、大文字と小文字を区別しないように指定し、KSは区分仮名タイプを指定します。WidthSensitivity Omittedは、大文字と小文字を区別せず、WSは大文字と小文字を区別することを指定します。BINは、バイナリ順序を指定します。今のところ調べているだけなら、まだこのように変えないでください。また後悔しないようにしてください。nam a_a dd----------1 a 1 bb 2 cc 2 vv 2 kk 3 dd 3 ee 6 yy(11 row(s)affected)*/今はa_を調べています。add='aa'の、'Aa'などはだめです。Example 1:
 
ALTER DATABASE database
COLLATE Chinese_PRC_CS_AS
--
ALTER DATABASE database COLLATE Chinese_PRC_CI_AS --
Example 2:
 
select replace('AbacB' collate Chinese_PRC_CS_AS_WS,'B','test')
Example 3.上記の覚えられない場合は、最も愚かな方法でascii
 
create table tb(a varchar(20) collate Chinese_PRC_CS_AS_WS)
insert tb values('Abac')
select replace(a,'a','test') from tb
drop table tb
Example 4に変換します。どのバージョンでも
 
< Windows_collation_name > :: =
CollationDesignator_ <ComparisonStyle>
< ComparisonStyle > ::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive [_WidthSensitive ] ]
| _BIN
です。