首页 新闻 赞助 找找看

SQL删除语句成功执行,但是数据就是没有删除,有返回受影响行数,求大神解答

0
悬赏园豆:15 [已解决问题] 解决于 2018-11-20 15:42

delete from Students where StuId=1008

(0 行受影响)

(1 行受影响)

(好像没博客不能发图片,我只能这样了,有俩受影响行数,可能因为我有写这个表的一个删除触发器,删除其他表数据的)

该条数据在我刷新后依旧存在于我的数据库。。。

SQL
问题补充:

触发器代码:
USE [StudentManage]
GO
/****** Object: Trigger [dbo].[delStudents] Script Date: 2018/11/20 12:43:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[delStudents]
ON [dbo].[Students]
INSTEAD OF delete
AS
begin
delete from Score where StuId in(select StuId from deleted)
end
刚才我试图找错误过程中发现一个新现象,我编辑项里面我用右键删除信息成功了,当时我没注意,但我再次打开的时候那条数据又重新出现了,,,,,,

乌合无象的主页 乌合无象 | 初学一级 | 园豆:171
提问于:2018-11-20 11:56

建议提供触发器的代码

dudu 5年前

@dudu: 已补充

乌合无象 5年前
< >
分享
最佳答案
1

1:删除这张表,重新创建,然后再执行插入删除试试
2:如果上面删除成功,并且不再出现,再加你的触发器,加好触发器后再执行插入删除试试

收获园豆:10
顽皮大叔 | 菜鸟二级 |园豆:318 | 2018-11-20 15:30

感谢!成功避开了!

乌合无象 | 园豆:171 (初学一级) | 2018-11-20 15:42
其他回答(4)
0

是的啊,0行受影响,当然还在。

爱编程的大叔 | 园豆:30839 (高人七级) | 2018-11-20 12:10

但是条件是没有错误的,StuId列确实是有1008的,而且下面还跟这个一行受影响,不知道是什么操作,我就觉得那个0行受影响说的是触发器写的语句是0

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 12:29

@乌合无象:
你这是在搞笑吗?
给我数据库,我能有几百种方法搞成这样的。
你老老实实看数据库,看看究竟是触发器里面做了啥事情,不要用可能这种字眼,
没有你那个数据库看谁也回答不了你问题的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2018-11-20 12:34

@爱编程的大叔: 我是想上图啊,但是我没博客啊,,,,我的触发器早检查过了,就是在删除这个表记录的时候把一个关联表的数据删除,,我们老师也鼓捣了半天也没鼓捣出来就撤了=.=

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 12:36
0

调试 这个tirgger,把delete 换成insert到一个临时表 试试!看看 这条记录能不能 正常插入!

收获园豆:5
大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 13:21

delete from Students where StuId=1008 这条sql你commit了吗?

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 13:30

试过了,可以正常插入。

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 13:36

@乌合无象: 我感觉 (select StuId from deleted) 这个结果集中,含有 比如 空格之类的东西;
你试试 这个,delete from Score where StuId in (select StuId from Students where StuId=1008),能执行成功不?

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 13:42

@大树2016: 这个是可以执行成功的,返回0行受影响,因为我Score表中没这个的记录,我现在是Students表中的数据删不掉,而且返回1行受影响,简直就像是删除的瞬间又恢复了一样

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 13:45

@乌合无象:
delete from Students where StuId=1008;
commit;
这样 也不行?

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 13:49

@大树2016: 不行,,,而且我没写事务啊,,,commit直接报错了

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 13:51

@乌合无象: 我的意思是 你在 终端 上 执行
delete from Students where StuId=1008;
commit;

另外,你再试试,把这个表 Score中插入一条 studl =1008的记录,看看是否能删掉;

没病不死人,肯定有原因!

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 13:55

@大树2016: 写入了,依旧没有任何好转,而Score表插入记录之后则可以顺利删除

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 14:03

@乌合无象: 啥数据库啊?

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 14:07

@大树2016: Sql Server 2014

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 14:08

@乌合无象: 呵呵,换数据库吧!这个不适合玩数据!

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 14:21

@大树2016: 啊?这个有啥毛病吗?我们老师让我们统一用的这个,,,

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 14:22

@乌合无象: 没啥毛病,就是 格局太小!小数量据可以 玩玩,大型数据量的都用 oracle!
别纠结了,这东西我只能说 能用,普通的 增删改查 还是可以的,复杂的就算了!

支持(0) 反对(0) 大树2016 | 园豆:213 (菜鸟二级) | 2018-11-20 15:19

@大树2016: 好的,谢谢了。

支持(0) 反对(0) 乌合无象 | 园豆:171 (初学一级) | 2018-11-20 15:26
0

估计是有什么地方主动往里插入了。

会长 | 园豆:12401 (专家六级) | 2018-11-20 13:42
0

加个Identity列, 删除后,比较一下和原来一样不一样就知道是不是删除了。楼主的情况,应该是删除又插入了。后者事务回滚了。

阿水 | 园豆:506 (小虾三级) | 2018-11-21 09:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册