SQL Server 2008ではテーブル "プロシージャ"を指定しましたSQL Server 2008 - "Procedures"という名前は予約されていますか?
クエリを書くたびに、プロシージャという単語は緑色に変わりますが、他のテーブル名は何もありません。私はこれが私が作成したテーブルとは関係のないストアドプロシージャと関係があると考えています。
私はテーブル名プロシージャを使用しても問題ありませんか、それとも変更する必要がありますか?
SQL Server 2008ではテーブル "プロシージャ"を指定しましたSQL Server 2008 - "Procedures"という名前は予約されていますか?
クエリを書くたびに、プロシージャという単語は緑色に変わりますが、他のテーブル名は何もありません。私はこれが私が作成したテーブルとは関係のないストアドプロシージャと関係があると考えています。
私はテーブル名プロシージャを使用しても問題ありませんか、それとも変更する必要がありますか?
あなたは問題ありません。 「手続き」(単数)は予約語ですが、「手続き」(複数)は予約語ではありません。あなたは、あなたが好きなテーブルに名前を付けるために許可されているSQL Reserved Keywords
注 - ここで
すべて予約済みキーワードのリストです。予約されたキーワードとしてテーブルを指定するのがベストプラクティスとはみなされませんが、可能です。これを行う場合は、テーブル名を角括弧で囲むことで、クエリをわずかに変更する必要があることに注意してください。
テーブルに任意の名前を付けることができます(ただし、ルールはidentifiersに従う必要があり、128文字を超えることはできません)。それが予約語である場合は、[TableName]を使用する必要があります。しかし、一般的にそうするのはお勧めできません。他の開発者を混乱させる可能性があり、予約されたキーワードになると将来のアップグレードに問題が生じる可能性があります。
プロシージャは予約されたキーワードではありません。それはカタログビュー、sys.procedures
の名前であるため、
Procedures
が緑色に変わります。 T-SQLカラーコーディング(予約済みであるかどうか、また今日はエラーを引き起こすかどうか)に矛盾する項目が表示されたら、それが使用するのが最適な名前かどうかという疑問があります。
新しいバージョンのSQL Serverに移行して、単語が突然キーワードまたは予約語になった場合、(a)完全で苦痛なリファクタリング、または(b)四角形SQL Serverがそれが識別子であることを理解するために、名前のまわりに括弧を入れてください。これは、例えば、緑色に変わりはありません:としてかなり明らか
SELECT cols FROM dbo.[Procedures];
それはないですが、ほかに緑点灯しないように、それは実際に彼らはこれまでprocedures
キーワードまたは予約語を確認する必要があり、将来の互換性の問題からあなたを絶縁します。
一般的に、キーワードになる可能性のある領域であっても、すべての識別子名を角括弧で囲む方が安全です。
なぜ実際に緑色に変わるのか興味があります。私の+1。 –
名前を区切るだけでは緑色に変わらないので、名前自体は変わりません。 'SELECT * FROM [sys]。[procedures]'を試してみると、 'SELECT * FROM sys.procedures'と同じものが返されます。 –
誰が名前を変更したと言ったのですか? –
悪い悪い悪い考え。 – Asdfg
'WidgetProcedures'や' AccountingProcedures'などのように、より具体的に名前を拡張するのが疑わしいときは[括弧でくくってください] –