0

作为初学者,我正在寻求帮助,以便在每次出现另一个订单时尝试创建订单。

我在表格中有 3 种订单类型的dbo.OrderTypeOrderTypeID, OrderTypeName

OrderTypeID   OrderTypeName
---------------------------
     1        Assignment
     2        LoanRelease
     3        DocumentRetrieval

对于每个订单,OrderTypeName = Assignment我需要创建一个Orderwith OrderTypeName = DocumentRetrieval

这是我认为我需要的表格,

dbo.tblOrder

列:OrderId, OrderTypeID, LoanNumberCustomerID

dbo.tblOrderActivity

列:OrderID, ActivityID, ActivityDate

dbo.tblActivity

ActivityID, ActivityName

ActivityID  ActivityName
------------------------
     1      Received
     2      Keyed
     3      Printed
     4      Delivered

dbo.tblCustomer

CustomerID, CustomerName

我相信我需要为此创建一个程序,因为它涉及为每个Orderwith创建一个新订单,创建的每个新订单都必须有or 。OrderType = 3OrderOrderType = 1receivedActivityID = 1

有人可以帮我开始这个逻辑和过程吗?

这是我开始创建的触发器,但是,由于语法错误,我无法执行它,并且仍然需要弄清楚如何不仅创建新的Order,而且还OrderTypeID(3)为每个订单创建OrderTypeID(1)

还要创造一个新OrderActivity的搭配ActivityID = 1

create trigger trg_Order ON dbo.tblOrder
AFTER INSERT
AS
BEGIN
UPDATE dbo.tblOrder
IF exists (select 1 from inserted where OrderTypeId = 1)
BEGIN
INSERT INTO dbo.tblOrder 
    SELECT OrderID,3,LoanNumber,CustomerID
    FROM inserted
    WHERE OrderTypeID = 1       
END
END
4

1 回答 1

0
create trigger trg_Order on dbo.tblorder
after insert
as
BEGIN
if exists ( select 1 from inserted where orderTypeId = 1)
    BEGIN
     insert into dbo.tblorder
    select OrderId,3,LoanNumber, customerid
    from inserted
    where OrderTypeId = 1

    insert into dbo.tblorderActivity
    select OrderId,1,sysdatetime()
    from inserted
    where OrderTypeId = 1
END
END

这是最终成功完成我需要的代码。

于 2013-05-17T09:34:50.683 回答