SQL 更新觸發器的簡單問題

發布 科技 2024-04-01
4個回答
  1. 匿名使用者2024-02-07

    具體步驟如下:

    1. 首先建立乙個觸發器,需要在可新增表上建立乙個更新觸發器,如下圖所示,然後進入下一步。

    3. 接下來,如下圖所示更改可新增表中的資料,然後繼續下一步。

    4.然後,在完成上述步驟後,您會發現觸發器被觸發並輸出設定的文字,如下圖所示,然後進入下一步。

    5. 隨後,只需將 create 更改為 alter,然後修改邏輯,如下圖所示,然後進入下一步。

    7.最後,執行另乙個測試來更改可新增表,發現在觸發更新觸發器後,由於資料保護而中止,如下圖所示。 這樣,問題就解決了。

  2. 匿名使用者2024-02-06

    如果 (@abcd-@inta) @inta > else 中插入(插入的表是更新前資料的備份),選擇 @inta=(所需的值)

  3. 匿名使用者2024-02-05

    update 是先刪除,然後插入以比較插入和刪除的值。

  4. 匿名使用者2024-02-04

    您可以通過 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

相關回答
13個回答2024-04-01

對於 sqlserver,您可以編寫乙個基於資料庫的觸發器,您可以在其中獲取要對其執行操作的表的名稱,並且 sqlserver 禁止使用者刪除指定的表。 >>>More

11個回答2024-04-01

在觸發器的已刪除表中,將儲存已刪除的行。 只需將其取出並插入另一張桌子即可。 >>>More

9個回答2024-04-01

畫乙個區域 A 和區域 B,在區域旁邊畫乙個口袋妖怪返回玩家 X,並放乙個英雄 C 返回中立。 >>>More

9個回答2024-04-01

SD 和 RD 連線到基本 RS 觸發器。

,它們是預設和歸零的,並且為低電平有效。 當SD=1和RD=0(SD不是0,RD不是1,即分別從兩個控制埠外部輸入的電平值,因為低電平有效)時,無論輸入端D的狀態如何,Q=0和Q不=1,即觸發設定為0。 >>>More

6個回答2024-04-01

施密特觸發器。

差分電壓的主要功能是正反饋。 >>>More