SR0011: オブジェクト名に特殊文字を使用することは避けてください
規則 ID |
SR0011 |
分類 |
Microsoft.Naming |
互換性に影響する変更点 |
あり |
原因
1 つ以上のデータベース オブジェクトの名前に 1 つ以上の特殊文字が含まれています。
規則の説明
次の表に記載されている文字のうちいずれかを使用してデータベース オブジェクトに名前を付けた場合、そのオブジェクトを参照することだけでなく、そのオブジェクトの名前を含むコードを読み取ることも難しくなります。
文字 |
説明 |
空白文字 |
|
[ |
左角かっこ |
] |
右角かっこ |
' |
単一引用符 |
" |
二重引用符 |
違反の修正方法
この問題を解決するには、オブジェクト名からすべての特殊文字を削除する必要があります。 そのオブジェクトがデータベース プロジェクト内の他の場所 (データベース単体テストなど) から参照されている場合、データベース リファクタリングを使用して参照を更新する必要があります。 詳細については、「データベース オブジェクトへのすべての参照の名前変更」を参照してください。
警告を抑制する状況
1 つ以上の他のアプリケーションがそのデータベース オブジェクトを参照しており、そのアプリケーションを変更できない場合は、この警告を抑制する必要がある場合があります。
使用例
最初の例では、名前に特殊文字が使用されている列がテーブルに含まれています。 2 番目の例では、列名に特殊文字は使用されていません。
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_ を使用することは避けてください