web-dev-qa-db-ja.com

DELETE * FROMテーブル

C#を使用して指定されたテーブルのすべての行を削除する方法(以下のコードと同様)はありますか?

SqlConnection con = new SqlConnection(conString);
con.Open();

string sql = @"DELETE*FROM compsTickers;";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();

今私はエラーが出ています:

「*」付近の構文が正しくありません

16
locoboy

C#コードに問題はありません。これはSQL構文エラーです。

とにかく、*は必要ありません。 ではなくをテーブルから削除するため、削除する列を指定しません。

DELETE FROM compsTickers
48
BoltClock

列を指定しないDELETE FROM compsTickersで十分です。

(またTRUNCATE TABLE compsTickersが実行します。これは、トランザクションログの設定によっては意味のある削除の別の方法です)

16
cairnz

DELETEステートメントでは不要なので、*を削除するだけです

string sql = @"DELETE FROM compsTickers;";

10
codingbadger

DELETE(Transact-SQL) (リンク)

FROMはオプションです。あなたはいつもテーブルからDELETしていますので、必要なのは(単一のステートメントのためにステートメント区切り文字さえも必要としない)です:

DELETE compsTickers

テーブルを空にするもの

  • 存在する場合、ID列をリセットしません
3
RichardTheKiwi

削除クエリに「*」を書き込むことはお勧めできません。列を削除していないので、実際にはテーブルから行を削除しています。

*はテーブルのすべての列を指します。次の構文「compsTickersから削除」に続けてwhere条件を使用してみてください。

0
chetan

Deleteコマンドの構文が正しくありません。削除コマンドで'*'を使用する必要はありません。ジョブにはコマンドstring sql = @"DELETE FROM compsTickers;"を使用します。

ありがとう。

0
FIre Panda
string sql = @"DELETE FROM compsTickers;";

*を使用したり、deleteステートメントで列名を指定したりする必要はありません。

0
Alaa

私は使用することをお勧めします

  1. すべての操作を実行するストアドプロシージャ。
  2. コードではハードコードされた文字列を常に回避する必要があります。
  3. 変更を元に戻す必要がある場合に備えて、トランザクションを管理します。
0
Sonal Satpute