34,590
社区成员
发帖
与我相关
我的任务
分享
Create Trigger Test
On Stock
For Update,Insert
As
Declare @TBillNo int,@Name nvarchar
set @Name=(Select Name from Item a inner join Stock b on a.ItemID=b.ItemID)
if (@Name like '%卷板%')
begin
select @TBillNo=BillNo from inserted
update StockEntry SET Length=Weight/5/Height
where @TBillNo=BillNo
end
CREATE TRIGGER Test ON Stock
FOR UPDATE, INSERT
AS
SET NOCOUNT ON;
UPDATE b
SET Length = Weight / 5 / Height
FROM inserted AS a
INNER JOIN StockEntry AS b ON b.BillNo = a.BillNo
INNER JOIN Item AS c WITH(NOLOCK) ON c.ItemID=b.ItemID
WHERE c.Name LIKE '%卷板%';
CREATE TRIGGER Test ON StockEntry --这里应该是StockEntry吧?
FOR UPDATE, INSERT
AS
IF ( EXISTS ( SELECT Name
FROM Item a
INNER JOIN inserted b ON a.ItemID = b.ItemID
WHERE Name LIKE '%卷板%' ) )
BEGIN
UPDATE StockEntry
SET Length = Weight / 5 / Height
WHERE BillNo IN ( SELECT BillNo
FROM inserted
WHERE Name LIKE '%卷板%' );
END;
Create Trigger Test
On Stock
For Update,Insert
As
Declare @TBillNo int,@Name nvarchar
set @Name=(Select Name from Item a
inner JOIN StockEntry b ON a.itemid=b.itemid
inner join inserted c on c.BillNo=b.BillNo)
if (@Name like '%卷板%')
begin
select @TBillNo=BillNo from inserted
update StockEntry SET Length=Weight/5/Height
where @TBillNo=BillNo
end
这样就可以了,我看你的问题,你直接Select Name from Item a inner join Stock b on a.ItemID=b.ItemID;这两个表好像关联不到一起吧,表一都没有itemID的啊,所以我上面用了三个表关联。是不是我搞错了啊。不管怎么样,你试试上面这样行不行