0

しばらく SQL Server CE を使用しています。そのデータベースでは、テーブル名は , のよう でしUserPostsUserProfile

しかし、SQL Server CE から SQL Server にアップグレードした後、名前は , に編集されdbo.UserPostsますdbo.UserProfile。また、列の名前は次のように角括弧で囲みます[UserProfile]

なぜこのブラケットが使用されるのですか?

4

1 に答える 1

3

ブラケットは、SQL Server で名前を囲むために使用されます (二重引用符と同じ目的で使用されます)。

英数字とアンダースコアで構成され、数字で始まらず、予約語でもない名前の場合、角括弧は必要ありません。これらは通常、 (スペースに注意してください) などの「不規則な」名前[Column Name]または のような予約語を持つ列に使用されます[from]

SQL Server がコードを生成するとき、(私の意見では) 角かっこの使用について過度に保守的です。create tableステートメント内のすべての列名、テーブル名、さらには型名にもそれらを使用します。私は自分の名前に「不規則な」文字を決して使用しないので、すべての括弧が不必要に混乱していることに気付きます。

これdboはスキーマと呼ばれるものです。SQL Server は、データベース内のテーブルに対して次の 3 つの部分からなる命名規則を使用します。 ... データベース名が存在しない場合、デフォルトで現在のデータベースが使用されます。スキーマのデフォルトはdbo(または、変更されている場合は別のデフォルト スキーマであり、ほとんどありません)。また、最初の部分がサーバー名である 4 つの部分からなる命名規則があります。

于 2013-08-18T22:16:51.997 に答える