觸發器 倉庫系統中庫存大於零的不能刪除

2021-04-27 09:07:33 字數 925 閱讀 8011

alter trigger [sc]

on  [dbo].[貨品目錄]

after delete

as declare @r_id char(10),@kc decimal(18, 3)

select @r_id=編號,@kc=當前庫存

from deleted

if(@kc>0.0)

begin

rollback transaction

raiserror('德權:不能刪除資料',16,1)

end設計簡單的instead of觸發器

create trigger 訂單明細_insert

on  訂單明細

instead of insert

asbegin

set nocount on;

declare

@訂單id int,

@產品id int,

@單價 money,

@數量 smallint,

@折扣 real

set @訂單id = (select 訂單id from inserted)

set @產品id = (select 產品id from inserted)

set @單價 = (select 單價 from inserted)

set @數量 = (select 數量 from inserted)

set @折扣 = (select 折扣 from inserted)

if (@折扣)>0.6

print '折扣不能大於0.6'

else

insert into 訂單明細

(訂單id,產品id,單價,數量,折扣)

values

(@訂單id,@產品id,@單價,@數量,@折扣)

endgo

Oracle中的觸發器

oracle 中的觸發器 在oracle 中,觸發器是一種特殊的子程式,它在插入 更新 刪除資料時自動執行。使用觸發器可以實現比較複雜的約束。pk fk uq ck df 都是單錶約束資料完整性。觸發器可以分為 insert 觸發器 update 觸發器 delete 觸發器。insert 觸發器在...

SQL Server中的觸發器

去年接觸觸發器的時候一頭霧水,現在也算有了個大概的了解。就像的自考一樣,學習真的是乙個需要反覆的過程,從陌生到熟悉這是乙個過程。一 基本概念 觸發器是一種特殊型別的儲存過程,它不同於普通的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。當往某乙個 中插入...

MYSQL中的觸發器

只能用於insert,delete與update語句。只能用於實體表。每個表最多支援6個觸發器。觸發器失敗,它後面的邏輯也無法執行。在觸發器執行的時候,存在乙個名為new的虛擬表,和乙個名為old的虛擬表。new中的資料可以更新,old中的資料不可改變。觸發器有before和after,在語句執行前...