なぜそれは
select * from [User]
それよりも:
select * from User
?
別の理由: 角括弧は主に、スペースまたは特殊文字を含む列名を識別するために使用されます。例[movie name]
ただし、その場合、括弧を使用してこれらの列を参照する必要があります。したがって、フィールドに単一の名前と複数の名前を使用できるという普遍的な考え方を与えるために、[] は常に構文に表示されます。
これは、[] をテーブル名にも適用するのと同じ理由である可能性があります。
この投稿によると: "" と [] は区切り識別子です。これは、列名/テーブル名が予約済みのキーワードであるか、スペースやハイフンなどの特殊文字が含まれている場合に必要です。
そして、この参照は予約済みのキーワードUser
であると言っています...
のようなテーブル名で試してmyuser
、この性質がまだ続くかどうかを確認することをお勧めします。
もう 1 つ、本が古いバージョンの場合、[] は単一のテーブル名の Visual Studio ではオプションでした。ただし、テーブル名が単一の名前、2 つの名前、予約語、特殊文字を含む名前であることに関係なく、角括弧を使用する必要がある以前のバージョンの Visual stduio に変更されている可能性があります... :)
問題の場所はわかっています...テーブル名「ユーザー」ではなく「ユーザー」で問題ありません
参照先: http://msdn.microsoft.com/en-us/library/aa224033(v=sql.80).aspx