DELETE * FROM表

时间:2011-03-31 07:17:56

标签: c# asp.net .net sql sql-server

有没有办法(类似于下面的代码)使用c#删除指定表中的所有行?

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

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

现在我收到了一个错误:

  

'*'

附近的语法不正确

10 个答案:

答案 0 :(得分:48)

您的C#代码没有任何问题;这是一个SQL语法错误。

无论如何,*没有必要。您从表中删除,而不是,因此您不指定要删除的列:

DELETE FROM compsTickers

答案 1 :(得分:16)

您没有指定列DELETE FROM compsTickers就足够了。

(同样TRUNCATE TABLE compsTickers会这样做,这是一种不同的删除方式,根据您的交易日志设置可能有意义)

答案 2 :(得分:10)

只需移除*,因为DELETE语句

不需要

string sql = @"DELETE FROM compsTickers;";

答案 3 :(得分:3)

DELETE (Transact-SQL)(链接)

FROM是可选的。你总是从一个表中删除,所以你需要的只是(你甚至不需要一个语句分隔符,只需一个语句):

DELETE compsTickers

这会使表格清空

  • 但不会重置标识列(如果有)

答案 4 :(得分:0)

我建议使用

  1. 存储过程以执行所有操作。
  2. 您必须始终避免代码中的硬编码字符串。
  3. 如果您需要还原更改,请管理交易。

答案 5 :(得分:0)

string sql = @"DELETE FROM compsTickers;";

您无需在删除语句中使用*或指定任何列名。

答案 6 :(得分:0)

在删除查询中写'*'不是一个好习惯。由于我们没有删除列,因此我们实际上是从表中删除行。

*表示表中的所有列。尝试使用以下语法 “从compsTickers中删除”,然后是条件。

答案 7 :(得分:0)

delete命令的语法不正确。您无需在删除命令中使用'*'。使用命令string sql = @"DELETE FROM compsTickers;"完成工作。

感谢。

答案 8 :(得分:-1)

SqlConnection con = new SqlConnection(conString);
con.close();
cmd=new SqlCommand("DELETE FROM compsTickers", con);
con.Open();
int i = cmd.ExecuteNonQuery();
if(i>0)
{
 MessageBox.Show("Successful.");
}
con.Close();

答案 9 :(得分:-2)

错误接缝发生,因为'*'之前和之后没有空格(应该是'*')。