SQLServer で TABLE
は予約語になっています。
文法上、予約語もテーブル名やカラム名に使えますが、特別にクォーテーションでくくるなどしないといけません。
そのため、クォーテーションでくくっていない Table
はテーブル名として使えません。
SQL Server の予約済みキーワードを識別子およびオブジェクト名として使用することは構文的に可能ですが、これは識別子を区切って使用するときに限られます。
対策は大きく2種類あります。
- テーブル名を
Table
から別の名前に変更する - テーブル名
Table
をクォーテーションでくくる
おすすめは、テーブル名を変更することです(今後、同じ問題が何度も起きて、手間がかかるので)
もし、どうしても Table
から変えたくない場合には、ダブルクォーテーション ""
でくくるか、ブラケット []
でくくるようにしてください。ダブルクォーテーションの場合エスケープが必要になるので、ブラケットの方が簡単だと思います。
以下のようになると思います。
command.CommandText = @"INSERT INTO [Table] (pass, loginID, name) VALUES (@pass, @loginID, @name)";
Like!