为什么sql删除查询不起作用

时间:2009-06-30 10:13:26

标签: c#

我的表格table1包含字段id(int)name(nchar)grade(real)。 以下代码无效。没有错误或警告。代码执行良好但受影响的行数= 0。

MsSql Server

sqlConnection1.Open();
SqlCommand cmd = new SqlCommand("Delete from [table1] where [id] = 1", sqlConnection1);
int c = cmd.ExecuteNonQuery();
sqlConnection1.Close();

所有其他查询都运作良好。

5 个答案:

答案 0 :(得分:2)

略微扩大其他人的要求。您确定要在目标表中删除记录吗?此外,您确定从正确的数据库中获取表格吗?例如,默认值可能是tempdb,并且恰好有一个包含目标名称和id列的表。

首先从SQL提示中选择一个以确保您要查找的类型的项目:

SELECT TOP 10 * FROM [database].[schema].[table1] WHERE [id] = 1

如果提供结果,请尝试更改命令以显式声明数据库和模式:

DELETE FROM [database].[schema].[table1] WHERE [id] = 1

答案 1 :(得分:1)

思想:

  • 有一行[id] 1
  • 你有一个触发器吗?

我的猜测是第二个......在触发器被考虑之后,数字是,并且是上次操作的行数。

答案 2 :(得分:0)

我知道这可能听起来很傻,但是ID为1的呼叫中是否有数据?你能看到它通过SQL Profiler执行吗?如果通过SSMS执行它会发生什么?

答案 3 :(得分:0)

在Sql Management studio中运行查询时,查询是否有效?

答案 4 :(得分:0)

除了Marc Gravell关于触发器的评论之外,你还应该检查一下,如果有ON DELETE RESTRICT`的外键约束(并且在找到你之前错误消息以某种方式消失了......)