SQL Server命名尾随空间是否不敏感?

时间:2009-08-17 19:25:04

标签: sql sql-server tsql

我的OLTP中有一个位置表,在对它编码SSIS时,我发现一个LocationCode列名称中有一个尾随空格。

Create Table Location
(
    [LocationId] INT IDENTITY (1, 1)
    [LocationCode ] INT
)

请注意,LocationCode列名称具有尾随空格。

然而,以下代码有效。

SELECT LocationCode
From Location

事实上,我们找到了存储过程中使用尾随空格的几个地方,并且它一直在继续工作。

这怎么可能?

2 个答案:

答案 0 :(得分:5)

  

如果使用分隔标识符   命名对象和对象名称   包含尾随空格,SQL Server   存储没有尾随的名称   空格。

http://msdn.microsoft.com/en-us/library/ms176027%28SQL.90%29.aspx

P.S。各地的分隔标识符都是代码味道 - 它们应该只使用,而不是每个标识符。

答案 1 :(得分:0)

除了@Matt Rogish所说的,列名中的尾随空格不会被视为任何其他特殊字符。解析查询时实际上忽略了它(而连字符或tilda不会被忽略)。

我有submitted a bug到Microsoft Connect for SQL Server。