Sql server N这意味着你的问题没有简单的解决办法。你基本上可以打电话给微软,让他们执行你的规则。这与liunquistic无关——你可能有充分的理由。但是,由于SQL Server只支持官方规则,因此您的组合规则将使您无法进行单一排序规则匹配。不管是谁设计的,他都确保

Sql server N这意味着你的问题没有简单的解决办法。你基本上可以打电话给微软,让他们执行你的规则。这与liunquistic无关——你可能有充分的理由。但是,由于SQL Server只支持官方规则,因此您的组合规则将使您无法进行单一排序规则匹配。不管是谁设计的,他都确保,sql-server,tsql,sql-server-2012,collation,case-insensitive,Sql Server,Tsql,Sql Server 2012,Collation,Case Insensitive,N这意味着你的问题没有简单的解决办法。你基本上可以打电话给微软,让他们执行你的规则。这与liunquistic无关——你可能有充分的理由。但是,由于SQL Server只支持官方规则,因此您的组合规则将使您无法进行单一排序规则匹配。不管是谁设计的,他都确保自己是在象牙塔中设计的,忽略了相关系统的局限性。基本上,按照你的规则制作你自己合适的字符串。需要时,将ß重新编码到ss等中,然后使用二进制排序规则。它将是肮脏的,但这是唯一的方法。@TomTom实际上有一个排序规则,所以SQL Serer确实支


N这意味着你的问题没有简单的解决办法。你基本上可以打电话给微软,让他们执行你的规则。这与liunquistic无关——你可能有充分的理由。但是,由于SQL Server只支持官方规则,因此您的组合规则将使您无法进行单一排序规则匹配。不管是谁设计的,他都确保自己是在象牙塔中设计的,忽略了相关系统的局限性。基本上,按照你的规则制作你自己合适的字符串。需要时,将ß重新编码到ss等中,然后使用二进制排序规则。它将是肮脏的,但这是唯一的方法。@TomTom实际上有一个排序规则,所以SQL Serer确实支持它,它是“官方”的,而不是David的“编造规则”。有几种方法有效,它们都是
Hungarian_Technical
的子集。请看我的答案了解更多细节。非常有趣!我明天也会测试这个。虽然这在韦厄的情况下是有效的,但我想知道匈牙利语的“技术”是否还有其他怪癖,以一种意想不到的方式等同于其他东西。。
CREATE TABLE CollationTest 
(
        ID NVARCHAR(50) COLLATE Latin1_General_BIN NOT NULL,
    CONSTRAINT PK_CollationTest_ID PRIMARY KEY (ID)
);
GO
CREATE VIEW dbo.CollationTestConstraint
WITH SCHEMABINDING
AS
    SELECT  ID = UPPER(ID)
    FROM    dbo.CollationTest;
GO
CREATE UNIQUE CLUSTERED INDEX UQ_CollationTestConstraint_ID 
    ON dbo.CollationTestConstraint (ID);
INSERT dbo.CollationTest (ID) VALUES ('weiß');
INSERT dbo.CollationTest (ID) VALUES ('Weiss');
INSERT dbo.CollationTest (ID) VALUES ('Weiß');
INSERT dbo.CollationTest (ID) VALUES ('weiss');
CREATE TABLE CollationTest 
(
        ID NVARCHAR(50) COLLATE Latin1_General_BIN NOT NULL,
        IDUpper AS UPPER(ID),
    CONSTRAINT PK_CollationTest_ID PRIMARY KEY (ID),
    CONSTRAINT UQ_CollationTest_IDUpper UNIQUE (IDUpper)
);