-
具體步驟如下:
1. 首先建立乙個觸發器,需要在可新增表上建立乙個更新觸發器,如下圖所示,然後進入下一步。
3. 接下來,如下圖所示更改可新增表中的資料,然後繼續下一步。
4.然後,在完成上述步驟後,您會發現觸發器被觸發並輸出設定的文字,如下圖所示,然後進入下一步。
5. 隨後,只需將 create 更改為 alter,然後修改邏輯,如下圖所示,然後進入下一步。
7.最後,執行另乙個測試來更改可新增表,發現在觸發更新觸發器後,由於資料保護而中止,如下圖所示。 這樣,問題就解決了。
-
如果 (@abcd-@inta) @inta > else 中插入(插入的表是更新前資料的備份),選擇 @inta=(所需的值)
-
update 是先刪除,然後插入以比較插入和刪除的值。
-
您可以通過 2 個步驟了解更新操作,先刪除,再插入
因此,上乙個值已刪除。
最後乙個值在插入中。
create trigger t_atdatestate_update
on list
for update
asif update(atdatestate)
begindeclare @b atdatestate nvarchar(200) - 修改前。
宣告@s atdatestate nvarchar(200) - 已修改。
declare @s_id int
select @s atdatestate= atdatestate from inserted -- 從更新的副本表(臨時表)中獲取修改後的狀態。
select @s id=id,@b atdatestate=atdatestate from deleted -- 從臨時刪除的表中獲取原始值。
if @s_atdatestate is null
beginset @s_atdatestate='0'
endif @b_atdatestate is null
beginset @b_atdatestate='0'
end--如果修改前為2,3,4,則降低狀態修改,修改狀態與修改前不相同。
if ((convert(int,@b_atdatestate)>=2 and convert(int,@s_atdatestate)@s_atdatestate))
begininsert into ,before_atdatestate,after_atdatestate,o_ip,o_type)
values(@s_id,@b_atdatestate,@s_atdatestate,'','狀態不正常,向下降低')
endif(convert(int,@b_atdatestate)<2) and ( convert(int,@s_atdatestate)>=2)
begininsert into ,before_atdatestate,after_atdatestate,o_ip,o_type)
values(@s_id,@b_atdatestate,@s_atdatestate,'','狀態提公升')
endend
對於 sqlserver,您可以編寫乙個基於資料庫的觸發器,您可以在其中獲取要對其執行操作的表的名稱,並且 sqlserver 禁止使用者刪除指定的表。 >>>More
SD 和 RD 連線到基本 RS 觸發器。
,它們是預設和歸零的,並且為低電平有效。 當SD=1和RD=0(SD不是0,RD不是1,即分別從兩個控制埠外部輸入的電平值,因為低電平有效)時,無論輸入端D的狀態如何,Q=0和Q不=1,即觸發設定為0。 >>>More