【问题标题】:Why isn't my delete statement working?为什么我的删除语句不起作用?
【发布时间】:2016-02-22 02:28:44
【问题描述】:
cmd.CommandText = "DELETE * FROM dbo.DisplayData"
cmd.ExecuteNonQuery()

我目前有以下删除语句,当它执行“'*'附近的语法不正确”时向我抛出错误。

我要做的是删除 DisplayData 表中的所有行,然后插入新数据,据我所知,这是 SQL delete all 语句的正确语法?

我在网上四处查看,找不到任何说我的语法不正确的东西。而且我找不到解决方案。

提前致谢。

【问题讨论】:

  • 删除*..
  • @CrushSundae 非常感谢,但是,冒着听起来像个白痴的风险......为什么我不需要一个 '*' 我认为这是您需要引用所有行/列的符合查询条件?
  • 用于SELECT 语句。我建议您首先阅读查询的基本原理。 :)
  • 我以为我认识他们,哈哈,据我所知,第一年我就是这样使用 SQL-Server 教的,检查了 w3Schools,那里也有同样的东西......哦,好吧,已修复,谢谢
  • 我知道这一点,因为我刚开始时也做过同样的事情。大声笑。

标签: sql sql-server vb.net sql-delete sqlcommand


【解决方案1】:

您正在寻找的是:

cmd.CommandText = "DELETE FROM dbo.DisplayData"
cmd.ExecuteNonQuery()

cmd.CommandText = "TRUNCATE dbo.DisplayData"
cmd.ExecuteNonQuery()

注意:截断会重置自动增量

这是一个很好的article

【讨论】:

  • 使用TRUNCATE时要小心。这将重置您的自动增量 ID 的所有种子。这将完全RESET你的桌子。
  • 这可能是 OP 真正需要的。 TRUNCATEDELETE 快;它不记录单个交易;并且它不会调用删除触发器。
猜你喜欢
  • 1970-01-01
  • 2011-07-16
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 2013-09-30
  • 1970-01-01
相关资源
最近更新 更多