2012-03-08 9 views
3

SQL Server 2008ではテーブル "プロシージャ"を指定しましたSQL Server 2008 - "Procedures"という名前は予約されていますか?

クエリを書くたびに、プロシージャという単語は緑色に変わりますが、他のテーブル名は何もありません。私はこれが私が作成したテーブルとは関係のないストアドプロシージャと関係があると考えています。

私はテーブル名プロシージャを使用しても問題ありませんか、それとも変更する必要がありますか?

+0

悪い悪い悪い考え。 – Asdfg

+0

'WidgetProcedures'や' AccountingProcedures'などのように、より具体的に名前を拡張するのが疑わしいときは[括弧でくくってください] –

答えて

1

あなたは問題ありません。 「手続き」(単数)は予約語ですが、「手続き」(複数)は予約語ではありません。あなたは、あなたが好きなテーブルに名前を付けるために許可されているSQL Reserved Keywords

注 - ここで

すべて予約済みキーワードのリストです。予約されたキーワードとしてテーブルを指定するのがベストプラクティスとはみなされませんが、可能です。これを行う場合は、テーブル名を角括弧で囲むことで、クエリをわずかに変更する必要があることに注意してください。

1

テーブルに任意の名前を付けることができます(ただし、ルールはidentifiersに従う必要があり、128文字を超えることはできません)。それが予約語である場合は、[TableName]を使用する必要があります。しかし、一般的にそうするのはお勧めできません。他の開発者を混乱させる可能性があり、予約されたキーワードになると将来のアップグレードに問題が生じる可能性があります。

プロシージャは予約されたキーワードではありません。それはカタログビュー、sys.proceduresの名前であるため、

Reserved Keywords

5

Proceduresが緑色に変わります。 T-SQLカラーコーディング(予約済みであるかどうか、また今日はエラーを引き起こすかどうか)に矛盾する項目が表示されたら、それが使用するのが最適な名前かどうかという疑問があります。

新しいバージョンのSQL Serverに移行して、単語が突然キーワードまたは予約語になった場合、(a)完全で苦痛なリファクタリング、または(b)四角形SQL Serverがそれが識別子であることを理解するために、名前のまわりに括弧を入れてください。これは、例えば、緑色に変わりはありません:としてかなり明らか

SELECT cols FROM dbo.[Procedures]; 

それはないですが、ほかに緑点灯しないように、それは実際に彼らはこれまでproceduresキーワードまたは予約語を確認する必要があり、将来の互換性の問題からあなたを絶縁します。

一般的に、キーワードになる可能性のある領域であっても、すべての識別子名を角括弧で囲む方が安全です。

+0

なぜ実際に緑色に変わるのか興味があります。私の+1。 –

+0

名前を区切るだけでは緑色に変わらないので、名前自体は変わりません。 'SELECT * FROM [sys]。[procedures]'を試してみると、 'SELECT * FROM sys.procedures'と同じものが返されます。 –

+0

誰が名前を変更したと言ったのですか? –

関連する問題