RuleId |
SR0012 |
カテゴリ |
Microsoft.Naming |
互換性に影響する変更点 |
あり |
原因
ユーザー定義型の名前に予約語が含まれています。
規則の説明
データベース コードを理解しにくくなるため、ユーザー定義型の名前に予約語を使用しないでください。 SQL Server では、区切り記号で区切られた識別子を使用する場合にのみ、識別子およびオブジェクト名として予約語を使用できます。 予約済みのキーワードの一覧については、Microsoft の Web サイト「予約済みキーワード (Transact-SQL)」を参照してください。
違反の修正方法
ユーザー定義の型名またはオブジェクト名を変更する必要があります。 データベース リファクタリングを使用すると、データベース プロジェクト全体でその名前のすべてのインスタンスを簡単に置換できます。 詳細については、「データベース オブジェクトへのすべての参照の名前を変更する」を参照してください。
警告を抑制する状況
変更できない外部アプリケーションが名前を参照している場合は、この警告の抑制が必要になることがあります。
使用例
最初の例では、SQL Server 2000 の構文を使用して、この警告を生成するユーザー定義型の定義を示します。 2 番目の例では、そのユーザー定義型を修正して問題を解決するための 1 つの方法を示します。 3 番目の例では、SQL Server 2005 の構文を使用して、この警告を生成するユーザー定義型の別の定義を示します。 4 番目の例では、そのユーザー定義型を修正して問題を解決するための 1 つの方法を示します。
-- Potential misuse of a keyword as a type name
EXEC sp_addtype N'Alter', N'char(10)',N'not null'
-- Corrected type name
EXEC sp_addtype N'AlterType', N'char(10)',N'not null'
-- Potential misuse of a keyword as a type name
CREATE TYPE Alter
FROM varchar(11) NOT NULL ;
-- Corrected type name
CREATE TYPE AlterType
FROM varchar(11) NOT NULL ;
関連規則
SR0011: オブジェクト名に特殊文字を使用することは避けてください
SR0016: ストアド プロシージャのプレフィックスに sp_ を使用することは避けてください