delete from Students where StuId=1008
(0 行受影响)
(1 行受影响)
(好像没博客不能发图片,我只能这样了,有俩受影响行数,可能因为我有写这个表的一个删除触发器,删除其他表数据的)
该条数据在我刷新后依旧存在于我的数据库。。。
触发器代码:
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
刚才我试图找错误过程中发现一个新现象,我编辑项里面我用右键删除信息成功了,当时我没注意,但我再次打开的时候那条数据又重新出现了,,,,,,
1:删除这张表,重新创建,然后再执行插入删除试试
2:如果上面删除成功,并且不再出现,再加你的触发器,加好触发器后再执行插入删除试试
感谢!成功避开了!
是的啊,0行受影响,当然还在。
但是条件是没有错误的,StuId列确实是有1008的,而且下面还跟这个一行受影响,不知道是什么操作,我就觉得那个0行受影响说的是触发器写的语句是0
@乌合无象:
你这是在搞笑吗?
给我数据库,我能有几百种方法搞成这样的。
你老老实实看数据库,看看究竟是触发器里面做了啥事情,不要用可能这种字眼,
没有你那个数据库看谁也回答不了你问题的。
@爱编程的大叔: 我是想上图啊,但是我没博客啊,,,,我的触发器早检查过了,就是在删除这个表记录的时候把一个关联表的数据删除,,我们老师也鼓捣了半天也没鼓捣出来就撤了=.=
调试 这个tirgger,把delete 换成insert到一个临时表 试试!看看 这条记录能不能 正常插入!
delete from Students where StuId=1008 这条sql你commit了吗?
试过了,可以正常插入。
@乌合无象: 我感觉 (select StuId from deleted) 这个结果集中,含有 比如 空格之类的东西;
你试试 这个,delete from Score where StuId in (select StuId from Students where StuId=1008),能执行成功不?
@大树2016: 这个是可以执行成功的,返回0行受影响,因为我Score表中没这个的记录,我现在是Students表中的数据删不掉,而且返回1行受影响,简直就像是删除的瞬间又恢复了一样
@乌合无象:
delete from Students where StuId=1008;
commit;
这样 也不行?
@大树2016: 不行,,,而且我没写事务啊,,,commit直接报错了
@乌合无象: 我的意思是 你在 终端 上 执行
delete from Students where StuId=1008;
commit;
另外,你再试试,把这个表 Score中插入一条 studl =1008的记录,看看是否能删掉;
没病不死人,肯定有原因!
@大树2016: 写入了,依旧没有任何好转,而Score表插入记录之后则可以顺利删除
@乌合无象: 啥数据库啊?
@大树2016: Sql Server 2014
@乌合无象: 呵呵,换数据库吧!这个不适合玩数据!
@大树2016: 啊?这个有啥毛病吗?我们老师让我们统一用的这个,,,
@乌合无象: 没啥毛病,就是 格局太小!小数量据可以 玩玩,大型数据量的都用 oracle!
别纠结了,这东西我只能说 能用,普通的 增删改查 还是可以的,复杂的就算了!
@大树2016: 好的,谢谢了。
估计是有什么地方主动往里插入了。
加个Identity列, 删除后,比较一下和原来一样不一样就知道是不是删除了。楼主的情况,应该是删除又插入了。后者事务回滚了。
建议提供触发器的代码
– dudu 6年前@dudu: 已补充
– 乌合无象 6年前