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

时间:2019-05-15 19:58:56

标签: 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

1 个答案:

答案 0 :(得分:8)

  

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

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

  

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

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

select 'match'
where N'   ' = N'' collate SQL_Latin1_General_CP1_CI_AS

匹配,但是

select 'match'
where N'   ' = N'' collate Latin1_General_Bin 

没有。