【发布时间】:2015-01-03 19:09:31
【问题描述】:
我有三个表 OUTPUT 、 INVENTORY 和 PRODUCT
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 中的QUANTUMOUT 列
【问题讨论】:
标签: sql sql-server stored-procedures triggers