1. ホーム
  2. sql-server

[解決済み] COLLATE SQL_Latin1_General_CP1_CI_AS' は何をするのですか?

2022-04-27 07:33:29

質問

SQLServerでデータベースを作成するために、以下のようなSQLクエリを持っています。

create database yourdb
on
( name = 'yourdb_dat',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdbdat.mdf',
  size = 25mb,
  maxsize = 1500mb,
  filegrowth = 10mb )
log on
( name = 'yourdb_log',
  filename = 'c:\program files\microsoft sql server\mssql.1\mssql\data\yourdblog.ldf',
  size = 7mb,
  maxsize = 375mb,
  filegrowth = 10mb )
COLLATE SQL_Latin1_General_CP1_CI_AS;
go

正常に動作しています。

残りのSQLは問題ないのですが COLLATE SQL_Latin1_General_CP1_CI_AS .

どなたか説明していただけませんか?また、この方法でデータベースを作成することがベストプラクティスであるかどうかを知りたいのですが?

どのように解決するのですか?

データベースサーバーがどのようにソート(テキストの断片を比較)するかを設定します。

SQL_Latin1_General_CP1_CI_AS

は、面白い部分に分かれています。

  1. latin1 サーバーが文字セット latin 1、基本的に ascii を使って文字列を扱うようにします。
  2. CP1 はコードページ1252の略
  3. CI 大文字小文字を区別しない比較なので、'ABC' は 'abc' と同じになります。
  4. AS アクセントを考慮するため、「ü」は「u」と同じにはなりません。

追伸 より詳細な情報はこちらをご覧ください。 ソロモン・ルッツキー氏の回答を読む .