求一条删除sql语句
我建了两个表,一个student表,一个score表,前者列有strId为主键,有name两个字段,后者有id为主键,stuId为外键,还有score三个字段,我想删除s...
我建了两个表,一个student表,一个score表,前者列有strId为主键,有name两个字段,后者有id为主键,stuId为外键,还有score三个字段,我想删除studnet表中的数据,可是他是却在score表中有外键约束,我想写一条语句删除student的数据同时删除score的有相同stuId的数据,就是一条语句同时删除两个表的两条数据,用什么方法啊?
谢谢大家 dong_xiaoyang说的级联确实好用 但我对amwih001的触发器更感兴趣 我想补充个问题 你给我写的触发器解决不了主外键关系 我写了个前出发器 但是每次用delete在删除的时候都只删除score中的数据而student中的数据怎么也删不掉了 是这种关系删除时不能用出发器吗 或者用别的方法 比如存储过程怎么写啊 谢谢大家了 展开
谢谢大家 dong_xiaoyang说的级联确实好用 但我对amwih001的触发器更感兴趣 我想补充个问题 你给我写的触发器解决不了主外键关系 我写了个前出发器 但是每次用delete在删除的时候都只删除score中的数据而student中的数据怎么也删不掉了 是这种关系删除时不能用出发器吗 或者用别的方法 比如存储过程怎么写啊 谢谢大家了 展开
4个回答
展开全部
这个方法不错,触发器。就是当你删除student表的数据的时候让系统自动执行相应的Sql语句。
我用SqlServer的方式帮你写个(其实其他数据库也一样,差不多)
Create trigger trg_delete on student for delete
as
--在这里就把score表的中数据删除掉
delete from score where stuId=(select stuId from deleted) //deleted为系统临时表,后面的这段子查询就是获取到刚刚被删除掉的stuId。
go
但是你的两个表建有关系,删主表的时候必须把从表的对应数据删除掉。剩下的你想想把。。
我用SqlServer的方式帮你写个(其实其他数据库也一样,差不多)
Create trigger trg_delete on student for delete
as
--在这里就把score表的中数据删除掉
delete from score where stuId=(select stuId from deleted) //deleted为系统临时表,后面的这段子查询就是获取到刚刚被删除掉的stuId。
go
但是你的两个表建有关系,删主表的时候必须把从表的对应数据删除掉。剩下的你想想把。。
展开全部
CREATE TRIGGER double_delete
ON student
FOR DELETE
AS
BEGIN
delete score where stuid in(select student.stuid from deleted studnet)
END
GO
给你一个网站,参考参考:窗内网,上面有很多关于SQL Server的视频和论坛。
ON student
FOR DELETE
AS
BEGIN
delete score where stuid in(select student.stuid from deleted studnet)
END
GO
给你一个网站,参考参考:窗内网,上面有很多关于SQL Server的视频和论坛。
参考资料: 窗内网
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
级联删除和触发器都可以实现,不过级联删除还比较简单
用级联操作格式:
ALTER TABLE [dbo].[T_USERGROUP] ADD
CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY
(
[ATNAME]
) REFERENCES [dbo].[T_ACCTTEMPLATE] (
[ATNAME]
) ON DELETE CASCADE
用级联操作格式:
ALTER TABLE [dbo].[T_USERGROUP] ADD
CONSTRAINT [FK_T_USERGROUP_T_ACCTTEMPLATE] FOREIGN KEY
(
[ATNAME]
) REFERENCES [dbo].[T_ACCTTEMPLATE] (
[ATNAME]
) ON DELETE CASCADE
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像有个事件吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询