0
我有三个表OUTPUT
,INVENTORY
和PRODUCT
SQL触发更新和插入
Create Table OUTPUT(){
OUTPUTID int indentity, -- output ID
PRODUCTID varchar(10),
QUANTUM int,
}
Create Table INVENTORY(){
INVENTORYID int indentity, -- inventory ID
QUANTUM int,
QUANTUMOUT int, -- quantum out
}
Create Table PRODUCT(){
PRODUCTID varchar(10),
}
我创建了以下触发:
create trigger [dbo].[trig_OUTPUT]
on [dbo].[OUTPUT]
after insert,update
as
begin
Set nocount on;
UPDATE INVENTORY
set INVENTORY.QUANTUMOUT = OUT.QUANTUM
from OUTPUT
inner join PRODUCT on OUTPUT.PRODUCTID = PRODUCT.PRODUCTID
inner join INVENTORY on PRODUCT.PRODUCT = INVENTORY.PRODUCT
end
和存储过程
CREATE procedure [dbo].[spud_addOUTPUT]
@productID varchar(10),
@quantum int
AS
declare @quantumtemp int
set @quantumtemp = (select QUANTUM from INVENTORY where INVENTORY.PRODUCTID = @productID)
if(@quantumtemp> @quantum or ISNULL(@quantumtemp,'0')='0')
begin
INSERT OUTPUT(PRODUCTID,QUANTUM) values(@productID,@quantum)
end
else
begin
print 'do not insert quantum out greater quantum in inventory'
end
然而,存储过程仅适用于第一个,第二个我称之为存储过程。它没有INVENTORY