2

SQL Server で別の人が作成したデータベースを維持しています。あるテーブルで、名前が角括弧で囲まれた列を見つけました。フィールドの名前はdescで、テーブルには として保存されます[desc]。他のフィールドは角括弧なしで格納されます。この選択の背後に特別な理由/慣例はありますか?

データベース上に構築されたアプリケーションは、C# または VB.NET で開発されます。

ありがとう

4

3 に答える 3

7

括弧 (または他のデータベース エンジンの他の識別子) は、この用語がデータベース内のオブジェクトの識別子であることをクエリ エンジンに明示的に伝える方法にすぎません。一般的な理由は次のとおりです。

  1. スペースを含むオブジェクト名は、角かっこで囲まれていない限り、クエリの一部として解析できません。
  2. 予約語であるオブジェクト名は解析に失敗する可能性があります (または、さらに悪いことに、正しく解析して予期しないことを行う)。

(エンジンはそのアイテムが何を意味するのかを識別しようとする必要がなく、それがオブジェクトであることが明示的に伝えられているため、パフォーマンスがわずかに改善される可能性もあると思います。まだそれを検証する必要があります。もちろん、それは内部の仕組みの小さな助けになるかもしれません.)

于 2011-09-27T13:51:49.397 に答える
4

名前に予約語 (SELECT など) またはスペースが含まれている場合は、名前を [] で囲む必要があります。

あなたの例では、DESCENDINGの略である[desc]があります。

于 2011-09-27T13:49:37.703 に答える
3

たとえば、[Date] や [Select] などのキーワードであるフィールドがある場合、この場合は [desc]

于 2011-09-27T13:47:19.073 に答える