在表创建脚本中显式指定排序规则有哪些优点和缺点?

2024-04-01

创建表时,COLLATE 子句是可选的。所以,在:

CREATE TABLE T1 (
  F1 varchar(50) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
  F2 varchar(50) NOT NULL
)

F2 的排序规则将由数据库默认值确定。

过去我们的团队总是使用默认的排序规则。但是,我们现在有一些列需要显式指定排序规则。我们正在考虑是否将我们的标准更改为always指定排序规则并查找可能有助于此决策的任何其他信息。

So:

  • 始终指定排序规则有哪些优点/缺点?
  • 如果我们总是指定排序规则,是否有需要注意的问题?

可能相关的附加信息:

  • 我们部署到多个客户端,并不是所有客户端都会同时升级。
  • 某些客户端在其服务器上确实有不同的排序规则配置。
  • 我们的应用程序使用 Ansi 字符串,任何对 Unicode 的考虑都是very离这儿很远。
  • 我们使用 MS SQL Server 2005 及更高版本(尽管如果可能的话,我更愿意将问题保持在任何支持排序规则的平台上)。

请注意: 这个问题是not询问如何解决排序规则冲突,或更改现有的服务器/数据库/列排序规则。 (已经有很多了。)


您正在构建一个部署在客户端计算机上的应用程序。您应该明确您的排序规则。

例如,默认排序规则不区分大小写。如果客户端(无论出于何种原因)希望在其数据库中默认区分大小写,那么不同机器上的比较将会有所不同。

您还遇到了调试问题。如果客户端按顺序获取结果,您的测试/开发系统可能会按不同的顺序获取结果。这可能会妨碍调试和客户支持。

最后,您最好拥有一致的软件来进行调试、维护和支持。如果特定客户需要不同格式的数据,则为该客户定制系统。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在表创建脚本中显式指定排序规则有哪些优点和缺点? 的相关文章

随机推荐

  • 查找后面不跟某个字符的“单词”

    搜索的正则表达式是什么word后面不跟的字符串 symbol 例如 mywordLLD OK myword dff OK myword ld Exclude The 消极的展望 http www regular expressions in
  • YouTube API - 按发布日期查询

    我正在编写一个网络应用程序 它使用 YouTube 代码 API 来执行特定类型的搜索 在本例中 我尝试搜索与查询匹配且在两个日期之间上传的所有视频 这个文件 http code google com apis youtube 2 0 de
  • 在Python中将文件更改为只读模式

    我正在编写一个数据处理代码 在其中创建一个新文件 将处理后的数据写入该文件并关闭 但该文件必须以只读模式关闭 以免被意外修改 这可以用 Python 完成吗 为此 您使用os chmod https docs python org 2 li
  • 有 Groovy 的源代码格式化程序吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在 Java 项目中使用 Jalopy 的商业版本 但它不适用于 Groovy 文件 Intelli
  • 处置 SqlCommand

    Because SqlCommand实施IDisposable 我通常会按如下方式处理 ADO 查询 using SqlConnection connection new SqlConnection connectionString usi
  • 测试 Javascript 中未定义的嵌套对象[重复]

    这个问题在这里已经有答案了 可能的重复 javascript测试嵌套对象键是否存在 https stackoverflow com questions 2631001 javascript test for existence of nes
  • GruntJs 'grunt' cmd 打开 Visual Studio?

    我已经能够使用GruntJs https github com cowboy grunt在几个零问题的个人项目上 我决定在我的工作项目中使用它 I run grunt init gruntfile这样就可以创建 gruntfile 和 pa
  • oracle 11G中自动删除最旧的分区

    如果分区超过三个月 我需要从间隔分区表中删除分区 是否有 Oracle 实用程序 函数可以执行此操作 或者如果没有 如何实现 请指导我 Database version Oracle 11G 我不知道有任何 Oracle 实用程序或函数可以
  • 索引有不同的表空间有什么逻辑原因吗?

    您好 有人可以告诉我为什么我们为索引和数据创建不同的表空间吗 人们普遍认为 将索引和表保存在单独的表空间中可以提高性能 现在 许多受人尊敬的专家认为这是一个神话 参见这个 问汤姆 主题 搜索 神话 https asktom oracle c
  • J2ME中的GUI设计

    我最近一直在研究移动编程 我实际上尝试了J2ME 抛光 GUI 框架 http www j2mepolish org 虽然用 Polish 制作的 GUI 看起来相当不错 但我意识到用户界面并不是我想要的 我开始在网络上搜索 Stack O
  • WPF 在选择时更改 ListboxItem 突出显示颜色

    我在设置时遇到问题HighlightBrushKey of a SelectedItem of a Listbox在 WPF 中 我的目的是根据代码中给定的布尔值设置项目的颜色 我尝试了以下步骤 实现转换器 检查布尔值并返回正确的颜色 例子
  • openssl 1.1.0 中替代 AES_ctr128_encrypt 的确切替代 API 是什么?

    我需要在 CTR 模式下使用 128 位 AES 算法来从 openssl 库进行加密 但似乎相应的函数AES ctr128 encrypt已从openssl 1 1 0g中删除 因为我收到以下错误 Documentation or ref
  • Html:无需控件即可播放音频?

    当用户单击图像时 我需要播放 mp3 音频文件 我只想播放音频 即不应该有控件 小部件等 浏览器也不应该启动外部应用程序 编辑 好的 我也许可以尝试一下 flash 有推荐的轻量级Flash播放器吗 现在有办法做到这一点 把这个
  • 更改Delphi中单元的初始化顺序

    我正在使用 Delphi XE7 开发 Windows 32 位应用程序 我的应用程序包含许多单元 其中有一个初始化部分 我需要首先初始化一个特定的初始化部分 可以设置优先级吗 我尝试在 dpr 文件中写入初始化部分 但编译器拒绝了这一点
  • Backbone - 从 API 获取 JSON 数据

    这几天我在玩Backbone 我想从 Twitter 搜索 API 接收一些数据 但我真的不明白它是如何工作的 这是我的代码 function Tweet Backbone Model extend Tweets Backbone Coll
  • 调用 .next() 方法时扫描仪出现 NoSuchElementException

    在 Java 中 我收到此异常 Exception in thread main java util NoSuchElementException at java util Scanner throwFor Unknown Source a
  • pthread_mutex_t VS @synchronized 块?

    static pthread mutex t gLock global pthread mutex init gLock NULL in init pthread mutex lock gLock for int i 0 i lt mess
  • FileNotFoundError 但文件存在

    我正在创建一个导入许多 JSON 文件的 Python 应用程序 这些文件与 python 脚本位置位于同一文件夹中 在我将整个文件夹移到其他地方之前 文件已完美导入 由于脚本会在不存在文件的情况下创建一个文件 因此它会继续在主目录中创建该
  • 在 Windows 上针对 Mac/Linux 进行编译

    显然 您无法真正在 Windows 上运行 Mac 或 Linux 应用程序 但是您可以使用 MSVC 为这些平台编译二进制文件吗 显然要插入额外的编译器和工具 对于一个严肃的构建系统 您不希望每个平台都有一个构建服务器 因此拥有一个为所有
  • 在表创建脚本中显式指定排序规则有哪些优点和缺点?

    创建表时 COLLATE 子句是可选的 所以 在 CREATE TABLE T1 F1 varchar 50 COLLATE SQL Latin1 General CP1 CS AS NOT NULL F2 varchar 50 NOT N