SR0011:避免在对象名称中使用特殊字符

规则 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]

相关规则

SR0012:避免将保留字用于类型名称

SR0016:避免使用 sp_ 作为存储过程的前缀

请参见

概念

分析数据库代码以提高代码质量