最近、SQL Server 2008をインストールし、大文字と小文字を区別する照合順序を選択しました。インスタンス全体で大文字と小文字を区別しないようにします(そのインスタンスのデータベースではありません)。照合順序を変更すると、既存のデータベースに影響しますか?もしそうなら、どのように?
基本的に、新しい照合でmaster
データベースを再構築するには、インストールを再度実行する必要があります。サーバー全体の照合を他の方法で変更することはできません。
見る:
Update:データベースの照合を変更する場合、T-SQLの次のスニペットを使用して現在の照合を取得できます。
SELECT name, collation_name
FROM sys.databases
WHERE name = 'test2' -- put your database name here
これにより、次のような値が得られます。
Latin1_General_CI_AS
_CI
は「大文字と小文字を区別しない」という意味です-大文字と小文字を区別する場合は、_CS
その代わりに:
Latin1_General_CS_AS
したがって、T-SQLコマンドは次のようになります。
ALTER DATABASE test2 -- put your database name here
COLLATE Latin1_General_CS_AS -- replace with whatever collation you need
次を使用して、サーバーで使用可能なすべての照合のリストを取得できます。
SELECT * FROM ::fn_helpcollations()
次を使用して、server's現在の照合を確認できます。
SELECT SERVERPROPERTY ('Collation')
それはできますが、変更はデータベースに挿入される新しいデータに影響します。長期的には、上記の提案に従ってください。
また、ストアドプロシージャまたは関数のパラメータ、エイリアスデータ型、変数にデータベースのデフォルトの照合が割り当てられるなど、照合をオーバーライドできる特定のトリックがあります。エイリアスタイプの照合を変更するには、エイリアスを削除して再作成する必要があります。
COLLATE句を使用して、リテラル文字列のデフォルトの照合をオーバーライドできます。照合を指定しない場合、リテラルにはデータベースのデフォルト照合が割り当てられます。 DATABASEPROPERTYEXを使用して、データベースの現在の照合を検索できます。
SELECTステートメントのORDER BY句で照合順序を指定することにより、サーバー、データベース、または列の照合順序をオーバーライドできます。