我有一个SQL查询,可以在SQLServer中创建数据库,如下所示:

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使用Charset Latin 1制作服务器处理字符串,基本上是ASCII
  2. CP1代码代码页1252
  3. CI病例不敏感的比较,因此" ABC"将等于" ABC"
  4. AS强调敏感,因此"ü"不等于" u"

P.S. 有关更多详细信息,请务必阅读 @Solomon-Rutzky的答案

来自: stackoverflow.com