Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql Server 2008-排序规则类型之间的差异_Sql Server_Sql Server 2008_Collation - Fatal编程技术网

Sql server Sql Server 2008-排序规则类型之间的差异

Sql server Sql Server 2008-排序规则类型之间的差异,sql-server,sql-server-2008,collation,Sql Server,Sql Server 2008,Collation,我正在安装新的SQL Server 2008 Server,在获取有关不同排序规则的可用信息时遇到一些问题。我已经搜索了SQLServerBOL和google'ed来寻找答案,但似乎找不到任何有用的信息 Windows排序规则“Finnish_Swedish_100”与“Finnish_Swedish”之间有什么区别 我假设“\u 100”-版本是SQL Server 2008中更新的排序规则,但如果是这样,与旧版本相比有什么变化 启用“重音敏感”通常是件好事吗?我知道这取决于任务和所有这些,

我正在安装新的SQL Server 2008 Server,在获取有关不同排序规则的可用信息时遇到一些问题。我已经搜索了SQLServerBOL和google'ed来寻找答案,但似乎找不到任何有用的信息

  • Windows排序规则“Finnish_Swedish_100”与“Finnish_Swedish”之间有什么区别

    我假设
    “\u 100”
    -版本是SQL Server 2008中更新的排序规则,但如果是这样,与旧版本相比有什么变化

  • 启用
    “重音敏感”
    通常是件好事吗?我知道这取决于任务和所有这些,但是有没有什么值得商榷的利弊?
  • “Binary”
    “Binary code point”
    参数,在哪些情况下应启用


  • 回答你的问题1。对芬兰语-瑞典语来说,启用重音敏感是件好事。否则,您的“å”和“ä”将被排序为“a”s,“ö”s将被排序为“o”s。(假设您将使用此类国际字符)

    更多信息:(讨论二进制代码点和重音敏感度)

    解决问题2:


    是的,如果给定语言的语法需要重音。

    SQL Server 2008中新增的排序规则序列为_100,带_90的为2005,不带后缀的为2000。我不知道有什么不同,也找不到任何文档。除非您正在执行与另一个不同版本的SQL server的链接服务器查询,否则我很想使用_100。很抱歉,我无法帮助解决这些差异。

    为了解决问题3(从措辞中删除的信息;他们的,我的格式):

    二进制(
    \u BIN
    ):

    • 根据为每个字符定义的位模式对SQL Server表中的数据进行排序和比较
    • 二进制排序顺序区分大小写,区分重音
    • 二进制也是最快的排序顺序
    • 如果未选择此选项,SQL Server将遵循字典中为关联语言或字母表定义的排序和比较规则
    二进制代码点(
    \u BIN2
    ):

    • 对于Unicode数据:基于Unicode代码点对SQL Server表中的数据进行排序和比较
    • 对于非Unicode数据:将使用与二进制排序相同的比较
    使用二进制码点排序顺序的优点是不需要数据重排序 在比较排序的SQL Server数据的应用程序中需要。因此,二进制代码点排序顺序可以简化应用程序开发,并可能提高性能

    有关更多信息,请参见关于问题2和3的。

    如果您接受用户数据,我建议您关闭重音敏感度,如果您有干净的、经过净化的数据,则建议您打开重音敏感度。 我自己也不是芬兰人,我不知道有多少词是不同的,取决于它们所包含的“或”。但是,如果有用户输入数据,您可以确保他们的使用不一致,并且您希望能够匹配他们。 如果您正在从一个数据集收集数据,并且您知道该数据集的内容和一致性,那么您将希望启用重音敏感度,因为您知道这些差异是有目的的


    在考虑问题3时,同样的问题也适用。(我主要是从Tomalak提供的链接中得到的)如果数据区分大小写和重音,那么您需要_BIN,因为它会排序更快。如果数据不规则,并且不区分大小写/重音,那么您将需要_BIN2,因为它是为Unicode数据设计的

    仅通过将排序规则设置为AI(不区分重音),字母ÄÖ/åäö不会与A和O混淆。然而,对于–和其他不属于瑞典字母表中单个字母的“组合”来说,情况确实如此。–是否混合取决于所讨论的设置


    由于我还有很多旧数据库需要与之通信,也需要使用链接的服务器,所以我选择了芬兰语(FINNISH)和瑞典语(SWEDISH)CI,因为我现在正在安装SQL2008。当Windows排序规则第一次出现在SQL Server中时,这是芬兰语-瑞典语的默认设置。

    使用下面的查询自己尝试一下

    如您所见,å、ä等不算作重音字符,在使用芬兰语/瑞典语排序规则时,根据瑞典字母表进行排序

    但是,只有将
    用作
    排序规则时,才会考虑重音。对于
    AI
    排序规则,它们的顺序保持不变,就好像根本没有重音一样

    CREATE TABLE #Test (
        Number int identity,
        Value nvarchar(20) NOT NULL
    );
    GO
    
    INSERT INTO #Test VALUES ('àá');
    INSERT INTO #Test VALUES ('áa');
    INSERT INTO #Test VALUES ('aa');
    INSERT INTO #Test VALUES ('aà');
    
    INSERT INTO #Test VALUES ('áb');
    INSERT INTO #Test VALUES ('ab');
    
    -- w is considered an accented version of v
    INSERT INTO #Test VALUES ('wa');
    INSERT INTO #Test VALUES ('va');
    INSERT INTO #Test VALUES ('zz');
    INSERT INTO #Test VALUES ('åä');
    GO
    
    SELECT Number, Value FROM #Test ORDER BY Value COLLATE Finnish_Swedish_CI_AS;
    SELECT Number, Value FROM #Test ORDER BY Value COLLATE Finnish_Swedish_CI_AI;
    GO
    
    DROP TABLE #Test;
    GO
    

    @Octadrone:因为你可能知道:在瑞典,重音字符的预期排序顺序是什么?“å”是单独排序还是与字母“a”的其他形式混淆?预期的排序顺序是[…]x y zååö。完全不同。然而,“v”和“w”被归类为同一个字母。-1:不正确,在芬兰语/瑞典语的分类中,戒指和元音不被视为重音符号。作为瑞典人,我可以告诉你,字母åäö在我们的语言中非常常用。因此,在大多数情况下,您可能希望能够正确地对它们进行排序。我为我的无知道歉,但是,如果“ö”不可用,您会简单地使用“o”还是完全改变这个词?在大多数情况下,它只会创建一个词,用“而不是o”来表示任何意思。如果这也被用在上下文中,我相信瑞典人理解它的意思不会有问题。不过,用户希望能够在瑞典系统中使用åäö好的,谢谢你的信息。我决定使用“Finnish_Swedish_100_CI_AS”作为排序规则,因为该数据库将与正在开发的新应用程序一起使用。