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
答案 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
没有。