sql觸發器,當一張表的某個值改變時,另一張表的某個值對應改變

僅僅做筆記用:

1.首先創建觸發器:CREATE TRIGGER tr_changeOcuupy --觸發器名稱;

2.對應的在哪張表創建觸發器:ON ND52Rpt  --表名;

3.觸發的類型:update;

4.ND52Rpt表中的ShiFouTongYi的值改變時觸發: IF UPDATE (ShiFouTongYi)  --當前字段被修改時;

5.定義變量:

DECLARE @updated_OID INT  --定義變量
DECLARE @updated_ShiFouTongYi int  --定義變量
SET @updated_OID  = (
    SELECT
        d.OID 
    FROM
        deleted d,
        inserted i
    WHERE
        d.OID  = i.OID 
) --變量賦值
SET @updated_ShiFouTongYi  = (
    SELECT
        d.ShiFouTongYi 
    FROM
        deleted d,
        inserted i
    WHERE
        d.ShiFouTongYi  = i.ShiFouTongYi 
) --變量賦值

6.改變另一張表的值:

--數據修改
UPDATE dbo.EnquiryConferenceRoom
SET Occupy = 1
WHERE
    WorkID = @updated_OID AND @updated_ShiFouTongYi =1;

CREATE TRIGGER tr_changeOcuupy --觸發器名稱
ON ND52Rpt  --表名
after UPDATE  --觸發時間點
AS
IF UPDATE (ShiFouTongYi)  --當前字段被修改時
BEGIN
DECLARE @updated_OID INT  --定義變量
DECLARE @updated_ShiFouTongYi int  --定義變量
SET @updated_OID  = (
	SELECT
		d.OID 
	FROM
		deleted d,
		inserted i
	WHERE
		d.OID  = i.OID 
) --變量賦值
SET @updated_ShiFouTongYi  = (
	SELECT
		d.ShiFouTongYi 
	FROM
		deleted d,
		inserted i
	WHERE
		d.ShiFouTongYi  = i.ShiFouTongYi 
) --變量賦值

--數據修改
UPDATE dbo.EnquiryConferenceRoom
SET Occupy = 1
WHERE
	WorkID = @updated_OID AND @updated_ShiFouTongYi =1;
END

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章