我的表格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();
所有其他查询都运作良好。
答案 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)
思想:
我的猜测是第二个......在触发器被考虑之后,数字是,并且是上次操作的行数。
答案 2 :(得分:0)
我知道这可能听起来很傻,但是ID为1的呼叫中是否有数据?你能看到它通过SQL Profiler执行吗?如果通过SSMS执行它会发生什么?
答案 3 :(得分:0)
在Sql Management studio中运行查询时,查询是否有效?
答案 4 :(得分:0)
除了Marc Gravell关于触发器的评论之外,你还应该检查一下,如果有ON DELETE RESTRICT`的外键约束(并且在找到你之前错误消息以某种方式消失了......)