觸發(fā)器實(shí)現(xiàn)兩表之間的INSERT,DELETE,UPDATE

需求說明:培訓(xùn)記錄處錄入“外出培訓(xùn)”記錄,保存后同步外出培訓(xùn)合同至“合同模塊”

創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、app軟件開發(fā)公司、小程序開發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營(yíng)銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。 

培訓(xùn)記錄表PX_Record創(chuàng)建觸發(fā)器

步驟一、新建觸發(fā)器:[insert_htandAL]

步驟二、當(dāng)PeiXun_Record表有INSERT,DELETE,UPDATE操作,則在觸發(fā)器中執(zhí)行INSERT,DELETE,UPDATE操作將相關(guān)改變同步至合同表Emp_HT,必須用PX_Record表中Pxr_ID字段做唯一標(biāo)識(shí)過濾

執(zhí)行代碼如下:

?

USE [XXXXX]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER TRIGGER [dbo].[insert_htandAL]

?? ON? [dbo].[PX_Record]

?? for INSERT,DELETE,UPDATE

AS

BEGIN

--01新增操作

if(exists(select 1 from inserted) and not exists(select 1 from deleted))

insert into Emp_HT (Comp_Code,Ht_code,Ht_empid,Ht_class,Ht_StartDate,Ht_EndDate,Ht_OldID,Ht_Num,Ht_Status,Ht_IsZhiXing,Ht_ContinueDesc,Ht_StopDesc

,Ht_EndDesc,Ht_desc,Ht_memo,createby,createtime,updateby,updatetime,Ht_Company,Ht_Year,G_htzdr,Ht_DocPath,Ht_Template,Ht_TemplatePath,G_pxid)

select a.Comp_Code,Emp_code,Pxr_empid,'02',G_sxDate,G_shxDate,null,1,0,1,null,null

,null,null,Pxr_memo,a.createby,a.createtime,a.updateby,a.updatetime,null,G_qdnx,null,null,null,null,Pxr_ID

from inserted a

inner join Emp_Base b on a.Pxr_empid=b.Emp_id

where isnull(pxr_class,0)=1 and G_ifpxxy='是'

END

?

--02刪除操作

if(not exists(select 1 from inserted) and exists(select 1 from deleted))

?begin

delete from Emp_HT

?where G_pxid in(select Pxr_ID from deleted)

end

?

?--03更新操作

?if(exists(select 1 from inserted) and exists(select 1 from deleted))

?begin

update Emp_HT set

?Ht_StartDate=a.G_sxDate ,

?Ht_EndDate=a.G_shxDate,

?Ht_Year=a.G_qdnx,

?updateby=a.updateby,

?updatetime=a.updatetime

?from inserted a

?where G_pxid=a.Pxr_ID and isnull(a.pxr_class,0)=1 and a.G_ifpxxy='是'

end

備注說明:

觸發(fā)器實(shí)現(xiàn)兩表之間的INSERT,DELETE,UPDATE

觸發(fā)器簡(jiǎn)介:

觸發(fā)器是一種特殊的存儲(chǔ)過程,它的執(zhí)行不是由程序調(diào)用,也不是手動(dòng)執(zhí)行,而是由事件來觸發(fā)。觸發(fā)器是當(dāng)對(duì)某一個(gè)表進(jìn)行操作。例如:update、insert、delete這些操作的時(shí)候,系統(tǒng)會(huì)自動(dòng)調(diào)用執(zhí)行該表上對(duì)應(yīng)的觸發(fā)器。

-- 查詢已存在的觸發(fā)器
select * from sys.triggers;
select * from sys.objects where type = 'TR';
select * from sysobjects where xtype='TR'


?-- 查看觸發(fā)器觸發(fā)事件對(duì)象
?select a.type_desc,b.* from sys.trigger_events a
?inner join sys.triggers b on a.object_id = b.object_id
?where b.name = 'insert_hetongandAskLeave';
?
?-- 查詢觸發(fā)器的 T-SQL 文本
? exec sp_helptext 'insert_hetongandAskLeave';
?
?
--禁用觸發(fā)器
disable trigger trigger_Stu_InsteadOf on Student;??? -- trigger_Stu_InsteadOf 觸發(fā)器名稱
--啟用觸發(fā)器
enable trigger trigger_Stu_InsteadOf on Student;??? -- trigger_Stu_InsteadOf 觸發(fā)器名稱

?

本文標(biāo)題:觸發(fā)器實(shí)現(xiàn)兩表之間的INSERT,DELETE,UPDATE
標(biāo)題URL:http://muchs.cn/article24/ipgdje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、商城網(wǎng)站外貿(mào)建站、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作