我有一个 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
分解成有趣的部分:
latin1
使服务器使用字符集 latin 1 处理字符串,基本上是 ascii CP1
代表代码页 1252 CI
不区分大小写的比较,所以 'ABC' 等于 'abc' AS
重音敏感,所以 'ü' 不等于 'u' 有关更多详细信息,请务必 read @solomon-rutzky's answer 。
关于sql-server - 'COLLATE SQL_Latin1_General_CP1_CI_AS' 是做什么的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5039211/