SQLserver有三张数据表,表A插入、修改、删除数据时 表B 表C 也会跟随,应该怎么写sql语句? 15
表A(序号,名称1,名称2,名称3,名称4)表B(序号,名称1,名称2,名称3,名称5,名称6)表C(序号,名称1,名称2,名称3,名称7,名称8)如:表A名称1哥哥名称...
表A (序号,名称1,名称2,名称3,名称4)
表B(序号,名称1,名称2,名称3,名称5,名称6)
表C(序号,名称1,名称2,名称3,名称7,名称8)
如:表A 名称1 哥哥 名称2 姐姐 名称3 弟弟 名称4 妹妹
当表A 名称1 哥哥 修改为爸爸时 表B 表C 也会自动更改
当表A 名称1 新增爷爷时 表B 表C 自动插入
当表A 名称1删除爷爷时 表B表C 也自动删除
当表A 名称1插入的数据重复时提示已存在
我是新手,请写清楚一些,谢谢! 展开
表B(序号,名称1,名称2,名称3,名称5,名称6)
表C(序号,名称1,名称2,名称3,名称7,名称8)
如:表A 名称1 哥哥 名称2 姐姐 名称3 弟弟 名称4 妹妹
当表A 名称1 哥哥 修改为爸爸时 表B 表C 也会自动更改
当表A 名称1 新增爷爷时 表B 表C 自动插入
当表A 名称1删除爷爷时 表B表C 也自动删除
当表A 名称1插入的数据重复时提示已存在
我是新手,请写清楚一些,谢谢! 展开
4个回答
2015-06-15
展开全部
2种办法都可以。
使用存储过程,比如说有过程insert_B, update_B,delete_B,insert_C, update_C,delete_C
当操作A表时:
对A表做插入时,判断是否插入成功,之后再调用insert_B和insert_C,如
create procedure usp_Insert_A
@A1 nvarchar(40),
@A2 nvarchar(40)
as
begin
declare @id nvarchar(40)
set @id=''
insert into A(ID,F1,F2) values(newid(),@A1,@A2)
if exists(select 1 from A where F1=@A1 and F2=@A2)
begin
select @id=ID from A where F1=@A1 and F2=@A2
end
if len(@id)>0
begin
exec insert_B--参数...
exec insert_C--参数...
end
end
在表A中写触发器
1.中未加入事务,当后续的B和C执行失败时,A是没有回退的,这个lz自行考虑。
展开全部
写个存储过程吧,用事务来控制。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里要用到触发器的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
触发器 自己去看看 有思路自学更有收获
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询