一般來說,BIN2
將是可取的超過BIN
,你可能要選擇在SQL排序規則Windows排序。例如Latin1_General_100_BIN2
Guidelines for Using BIN and BIN2 Collations
使用原則爲BIN排序規則
如果您的SQL Server應用程序與舊版本使用二進制排序規則的SQL Server進行交互,繼續使用二進制文件。二進制排序規則可能是混合環境更合適的選擇。
出於類似的原因是什麼剛被關於BIN2排序規則的規定,除非你有特殊要求,以保持向後兼容性問題,您應該傾斜向使用Windows排序規則而不是SQL服務器特定的排序規則(即以SQL開頭的排序現在被認爲有點「糟糕」;-))。
- @srutzky - Latin1_General_BIN performance impact when changing the database default collation
rextester演示:http://rextester.com/KIIDYH74471
create table t (
a varchar(16) --collate SQL_Latin1_General_CP1_CI_AS /* default */
, b varchar(16) --collate SQL_Latin1_General_CP1_CI_AS
, c nvarchar(16) --collate SQL_Latin1_General_CP1_CI_AS
, d nvarchar(16) --collate SQL_Latin1_General_CP1_CI_AS
);
insert into t values ('ss','ß',N'ss',N'ß');
select *
, case when a = b then '=' else '!=' end as [a=b] /* != */
, case when a = d then '=' else '!=' end as [a=d] /* = */
, case when c = b then '=' else '!=' end as [c=b] /* = */
, case when c = d then '=' else '!=' end as [c=d] /* = */
from t;
回報:
+----+---+----+---+-----+-----+-----+-----+
| a | b | c | d | a=b | a=d | c=b | c=d |
+----+---+----+---+-----+-----+-----+-----+
| ss | ß | ss | ß | != | = | = | = |
+----+---+----+---+-----+-----+-----+-----+
create table t (
a varchar(16) collate Latin1_General_100_BIN2
, b varchar(16) collate Latin1_General_100_BIN2
, c nvarchar(16) collate Latin1_General_100_BIN2
, d nvarchar(16) collate Latin1_General_100_BIN2
);
insert into t values ('ss','ß',N'ss',N'ß');
select *
, case when a = b then '=' else '!=' end as [a=b] /* != */
, case when a = d then '=' else '!=' end as [a=d] /* != */
, case when c = b then '=' else '!=' end as [c=b] /* != */
, case when c = d then '=' else '!=' end as [c=d] /* != */
from t;
個
回報:
+----+---+----+---+-----+-----+-----+-----+
| a | b | c | d | a=b | a=d | c=b | c=d |
+----+---+----+---+-----+-----+-----+-----+
| ss | ß | ss | ß | != | != | != | != |
+----+---+----+---+-----+-----+-----+-----+
值得一看:https://support.microsoft.com/en-us/help/322112/comparing-sql-collations-to-windows-collations –
我希望你不介意,但我編輯您的問題標題以包含'ss'和'ß'這一特定問題,以便其他人可以在將來更容易地找到此問題。 – SqlZim
@SqlZim一點都沒有。謝謝你 –