ALTER TRIGGER fdrp_t_OrderDetail
ON dbo.NormalOrder
INSTEAD OF INSERT
AS
DECLARE @OrderDetailID VARCHAR(100)
SET @OrderDetailID = ''
DECLARE @Operation INT
SET @Operation = 0
SELECT @OrderDetailID = OrderDetailID FROM INSERTED
IF EXISTS(SELECT * FROM NormalOrder WHERE OrderDetailID = @OrderDetailID)
BEGIN
RETURN 
END
INSERT INTO NormalOrder (OrderDetailID ,Operation ,CreateDate)
VALUES (@OrderDetailID ,@Operation ,GETDATE())为什么我循环插入的数据
只能插入一条记录

解决方案 »

  1.   


    ALTER TRIGGER fdrp_t_OrderDetail 
    ON dbo.NormalOrder
    INSTEAD OF INSERT
    AS
    DECLARE @Operation INT
    SET @Operation = 0 INSERT INTO NormalOrder (OrderDetailID ,Operation ,CreateDate) 
    select  OrderDetailID ,@Operation ,GETDATE() from INSERTED
    where not EXISTS(SELECT * FROM NormalOrder WHERE OrderDetailID = INSERTED.OrderDetailID)为什么我循环插入的数据
    只能插入一条记录因为inserted表里多行
    SELECT @OrderDetailID = OrderDetailID FROM INSERTED
    这个赋值只能得到最后一行