两个微笑的太阳等于一个微笑的太阳?

Dav*_*ois 5 sql-server

SQL Server如何确定两个标识符是否匹配?无论我按照以下顺序排列以下语句,SQL Server都会很高兴地创建第一个语句,然后拒绝创建其他任何已声明的语句。

create database []
go
create database []
go
create database [   ]
go
create database []
go
create database []
go
create database []
go
create database []
go
Run Code Online (Sandbox Code Playgroud)

Dav*_*oft 8

SQL Server如何确定两个标识符是否匹配?

使用服务器排序规则比较数据库名称。在数据库内部,使用数据库排序规则比较表和其他对象名称的标识符。

服务器排序规则是在SQL Server安装过程中指定的。默认服务器级别排序规则为SQL_Latin1_General_CP1_CI_AS。

对于任何两个字符,排序规则确定哪个更大,或者是否认为它们相等。>,<或=也是如此吗?

select 'match'
where N'   ' = N'' collate SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)

匹配,但是

select 'match'
where N'   ' = N'' collate Latin1_General_Bin 
Run Code Online (Sandbox Code Playgroud)

没有。