on single procdure删除多个表 [英] on single procdure Delete multiple Table

查看:119
本文介绍了on single procdure删除多个表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

on single procdure删除多个表





i有3个表

1] tbl_Ag_Master,

Given_Id,

Assignment_Id,



2] tbl_Ag_Child

ID,
Given_Id



3] tbl_Bach_Ag

Assignment_Id,





i必须创建Delete procdure并传递单个参数@Given_Id,



其中所有相关行删除在该3表中

如何完成?

on single procdure Delete multiple Table


i have 3 table
1]tbl_Ag_Master,
Given_Id,
Assignment_Id,

2]tbl_Ag_Child
ID,
Given_Id

3]tbl_Bach_Ag
Assignment_Id,


i have to create Delete procdure with passing single parameter @Given_Id,

where all related row delete in that 3 table
How it Done?

推荐答案

获得此效果的最佳方法是在具有ON DELETE触发器的表之间指定FOREIGN KEYS。 (在删除= CASCADE上)。



所以只需删除Given_Id(主表),它就会自动删除相关的。



希望它有所帮助:)
The best method to get this effect is to specify FOREIGN KEYS between the table with an ON DELETE trigger. (On Delete=CASCADE).

So just delete the Given_Id(main table) and it will automatically delete the related one.

Hope it helps :)


you can use Trigger


create trigger [dbo].[tri_Name] on tbl_Ag_Master
for delete
as
declare @Given_Id bigint;
declare @Assignment_Id bigint

select @Assignment_Id=d.Assignment_Id from deleted d;
select @Given_Id =d.Given_Id  from deleted d;

delete  from tbl_Ag_Child where Given_id=@Given_Id

delete from tbl_Bach_Ag where Assignment_Id_id=@Assignment_Id


这篇关于on single procdure删除多个表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆