| 规则 ID | SR0011 | 
| 类别 | Microsoft.Naming | 
| 是否重大更改 | 是 | 
原因
至少有一个数据库对象的名称中包含至少一个特殊字符。
规则说明
如果使用下表中的任意字符命名数据库对象,则不仅更难以引用该对象,而且更难以读取包含该对象名称的代码:
| 字符 | 说明 | 
| 空白字符 | |
| [ | 左方括号 | 
| ] | 右方括号 | 
| ' | 单引号 | 
| 双引号 | 
如何解决冲突
若要解决此问题,必须从对象名称中移除所有特殊字符。 如果在数据库项目中的其他位置(如数据库单元测试中)引用对象,则应使用数据库重构来更新引用。 有关更多信息,请参见 重命名对数据库对象的所有引用。
何时禁止显示警告
如果一个或多个其他应用程序引用数据库对象,并且您无法更改这些应用程序,则可能必须禁止显示这些警告。
示例
在第一个示例中,表中有一列的名称中含有特殊字符。 在第二个示例中,名称不包含特殊字符。
CREATE TABLE [dbo].[TableWithProblemColumn]
( 
[ID] INT NOT NULL IDENTITY(0, 1), 
[Small'String] VARCHAR(10)
)
ON [PRIMARY]
CREATE TABLE [dbo].[FixedTable]
( 
[ID] INT NOT NULL IDENTITY(0, 1), 
[SmallString] VARCHAR(10)
)
ON [PRIMARY]