しばらく SQL Server CE を使用しています。そのデータベースでは、テーブル名は , のよう
でしUserPosts
たUserProfile
。
しかし、SQL Server CE から SQL Server にアップグレードした後、名前は , に編集されdbo.UserPosts
ますdbo.UserProfile
。また、列の名前は次のように角括弧で囲みます[UserProfile]
。
なぜこのブラケットが使用されるのですか?
しばらく SQL Server CE を使用しています。そのデータベースでは、テーブル名は , のよう
でしUserPosts
たUserProfile
。
しかし、SQL Server CE から SQL Server にアップグレードした後、名前は , に編集されdbo.UserPosts
ますdbo.UserProfile
。また、列の名前は次のように角括弧で囲みます[UserProfile]
。
なぜこのブラケットが使用されるのですか?
ブラケットは、SQL Server で名前を囲むために使用されます (二重引用符と同じ目的で使用されます)。
英数字とアンダースコアで構成され、数字で始まらず、予約語でもない名前の場合、角括弧は必要ありません。これらは通常、 (スペースに注意してください) などの「不規則な」名前[Column Name]
または のような予約語を持つ列に使用されます[from]
。
SQL Server がコードを生成するとき、(私の意見では) 角かっこの使用について過度に保守的です。create table
ステートメント内のすべての列名、テーブル名、さらには型名にもそれらを使用します。私は自分の名前に「不規則な」文字を決して使用しないので、すべての括弧が不必要に混乱していることに気付きます。
これdbo
はスキーマと呼ばれるものです。SQL Server は、データベース内のテーブルに対して次の 3 つの部分からなる命名規則を使用します。 ... データベース名が存在しない場合、デフォルトで現在のデータベースが使用されます。スキーマのデフォルトはdbo
(または、変更されている場合は別のデフォルト スキーマであり、ほとんどありません)。また、最初の部分がサーバー名である 4 つの部分からなる命名規則があります。