解析的混合排序规则环境牛
中药大全 2021年09月06日 浏览:2 次
混合排序规则环境
兼容性问题对使用多个排序规则存储数据的组织会有影响。大多数组织对所有的 Microsoft SQL Server 2000 数据库使用相同的排序规则,从而消除了所有的排序规则兼容性问题。然而,有些组织存储的数据必须可由使用不同语言的用户查看,并且希望尽可能减少排序规则兼容性问题。
所有字符和 Unicode 对象(如列、变量和常量)都有排序规则。每当使用具有不同排序规则和代码页的对象时,都必须对查询进行编码以符合排序规则类型强制规则。当对使用运算符将多个具有不同排序规则的简单表达式组合在一起的复杂表达式进行编码时,所有排序规则必须可以隐性转换,或者可以使用 COLLATE 子句显式转换。
如果没有在字符或 Unicode 表达式中指定排序规则,则默认排序规则可能因连接的当前数据库设置而异。例如,如果没有在字符或 Unicode 常量上指定 COLLATE 子句,则将给该常量指派当前数据库的默认排序规则。这意味着 Transact-SQL 语句的结果在不同数据库的上下文中执行时可能有不同的排序规则。
若设置复制,则复制络(包括发布服务器、订阅服务器和分发服务器)中包括的所有数据库都必须使用相同的代码页。
大容量复制函数 BULK INSERT 和 bcp 命令提示实用工具支持列排序规则。
尽可能减少排序规则问题
如果必须存储反映多种语言的字符数据,始终使用 Unicode nchar、nvarchar 和 ntext 数据类型(而不是 char、varchar、text 数据类型)可使排序规则兼容性问题减到最少。使用 Unicode 数据类型可消除代码页转换问题。
对减少排序规则兼容性问题的另一个建议是使站点标准化,使之区分或不区分大小写和重音字符。若始终选择对大小写和重音使用相同敏感性的排序规则,最终用户将在所有系统间体验到一致的行为。大多数 SQL Server 2000 站点选择不区分大小写但区分重音。大小写敏感性还适用于 SQL Server 的对象名;因此,若指定区分大小写的排序规则,则所有用户在查询数据库时必须指定正确的大小写。例如,若服务器区分大小写并创建一个名为 Employees 的表,则所有的查询都必须将该表引用为 Employees。未使用正确大小写的引用(如 EMPLOYEES 或 employees)将无效。
排序规则和 tempdb
消费者也会感到麻木。 现状:卖车打折成流行 近期 每次启动 SQL Server 时都生成 tempdb 数据库,该数据库与 model 数据库的默认排序规则相同,后者通常与实例的默认排序规则相同。如果为创建的用户数据库指定的默认排序规则与 model 的排序规则不同,则该用户数据库与 tempdb 的默认排序规则也不同。所有的临时存储过程或临时表都创建并存储在 tempdb 中,这意味着临时表中的所有隐性列以及临时存储过程中的所有类型强制默认常量、变量和参数与永久表和永久存储过程中创建的对等对象使用不同的排序规则。
text 数据类型可能由此产生问题。例如,某个 SQL Server 2000 实例的默认排序规则是 Latin1_General_CS_AS,并且执行以下语句:
CREATE DATABASE TestDB COLLATE Estonian_CS_ASUSE TestDBCREATE TABLE TestPermTab (PrimaryKey int PRIMARY KEY, TextCol text )
手术伤口不愈合怎么办咸宁治疗白癜风的医院
乌鲁木齐前列腺炎治疗多少钱

- 上一篇: 解析的存储过程覆盖
- 下一篇 解析自动编号字段数据恢呢
-
能给大脑释放压力的好方
2019-07-13
-
为什么说睡前足浴是保健良
2019-07-07
-
关节炎患者可以吃红肉么
2019-07-07
-
螃蟹脚的功效与作用
2019-07-06
-
减肥药的优与劣
2019-07-06
-
地骷髅的功效与作用
2019-07-06