在下面代码中COLLATE SQL_Latin1_General_Cp1_CI_AS的作用是什么?

Spencerliu 2009-11-05 11:40:26
create database TestDatabase
ON
PRIMARY ( NAME=SampleData, FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\Testdata.mdf',
SIZE=10MB,
MAXSIZE=15MB)
LOG ON
( NAME=SampleLog, FILENAME= 'C:\Program Files\Microsoft SQL Server\MSSQL\data\Testdata_log.ldf',
SIZE=3MB,
MAXSIZE=5MB)
COLLATE SQL_Latin1_General_Cp1_CI_AS

小弟,新手上路,请各位高手指点迷津,谢过先!
...全文
1448 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
maomaotou9 2011-11-14
  • 打赏
  • 举报
回复
受教了。。。。学习下~~
Spencerliu 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fredrickhu 的回复:]
引用 5 楼 spencerliu 的回复:
2楼说得够全面,不过,我还是不知道,这个语句中的具体作用;
3楼4楼各执一词,我该信谁呢?
不过,还是谢谢。


是一样的 就是数据库字符集 听和尚的吧
[/Quote]
好的,谢谢。
这是我第一次提问,礼数不周的地方还请海涵。
那就给和尚分吧,分数很少,希望不要介意。但是怎么给分呢?
Spencerliu 2009-11-05
  • 打赏
  • 举报
回复
恩,可以肯定了是排序规则了。
SQL_collation_name
是 SQL 排序规则的排序规则名称。
补充一点:
排序规则标志 对象类型
强制默认 任何 Transact-SQL 字符串变量、参数、字面值、目录内置函数的输出、或不使用字符串输入但产生字符串输出的内置函数。
如果在用户定义函数、存储过程或触发器中声明某个对象,则将该对象指派为在其中创建函数、存储过程或触发器的数据库的默认排序规则。如果在批处理中声明该对象,则将其指派为连接所使用的当前数据库的默认排序规则。

隐性 X 列引用。从为表或视图中的列定义的排序规则得到表达式(由 X 表示)的排序规则。
即使 CREATE TABLE 或 CREATE VIEW 语句中的 COLLATE 子句给列显式指派了排序规则,该列引用仍归为隐性。

显式 X 使用表达式中的 COLLATE 子句显式投影到特定排序规则(由 X 表示)的表达式。
无排序规则 表示表达式的值是两个字符串之间操作的结果,而这两个字符串具有隐性排序规则标志的冲突排序规则。表达式的结果被定义为不具有排序规则。


只引用一个字符串对象的简单表达式的排序规则标志是被引用对象的排序规则标志。

如果复杂表达式所引用的两个操作数表达式的排序规则标志相同,则该复杂表达式的排序规则标志为数表达式的排序规则标志。

如果复杂表达式所引用的两个操作数表达式的排序规则不同,则该复杂表达式最终结果的排序规则标志基于下列规则:

显式优先于隐性。隐性优先于强制默认。换言之,
显式 > 隐性 > 强制默认

组合两个已指派给不同排序规则的显式表达式将生成错误。
显式 X + 显式 Y = 错误

组合两个具有不同排序规则的隐性表达式将产生无排序规则。
隐性 X + 隐性 Y = 无排序规则

将无排序规则的表达式与任何标志的表达式组合,除了显式排序规则外(参见下一项),都产生无排序规则标志的结果。
无排序规则 + 任何标志 = 无排序规则

将无排序规则的表达式与显式排序规则的表达式组合将产生具有显式标志的表达式。
无排序规则 + 显式 X = 显式

参考资料——————《LXH2002整理的SQL语言参考资料》
忆轩辕 2009-11-05
  • 打赏
  • 举报
回复
指定数据库的排序规则
--小F-- 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 spencerliu 的回复:]
2楼说得够全面,不过,我还是不知道,这个语句中的具体作用;
3楼4楼各执一词,我该信谁呢?
不过,还是谢谢。
[/Quote]

是一样的 就是数据库字符集 听和尚的吧
Spencerliu 2009-11-05
  • 打赏
  • 举报
回复
2楼说得够全面,不过,我还是不知道,这个语句中的具体作用;
3楼4楼各执一词,我该信谁呢?
不过,还是谢谢。
--小F-- 2009-11-05
  • 打赏
  • 举报
回复
指定排序规则
hery2002 2009-11-05
  • 打赏
  • 举报
回复
在创建数据库的时候指定数据库字符集.
xiequan2 2009-11-05
  • 打赏
  • 举报
回复
COLLATE
一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。
Spencerliu 2009-11-05
  • 打赏
  • 举报
回复
在线等待。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧