簡體   English   中英

SQL Server:創建過程/觸發器以為另一種訂單的每種類型創建新訂單

[英]SQL Server : creating a procedure/trigger to create a new order for every type of another order

作為初學者,我希望在每次出現另一個訂單時嘗試創建一個訂單時都尋求幫助。

我在表dbo.OrderType有3種訂單類型,其中的dbo.OrderType OrderTypeID, OrderTypeName

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

對於每個OrderTypeName = AssignmentOrder ,我需要創建一個OrderTypeName = DocumentRetrievalOrder

這是我認為我需要的表,

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

我相信我需要為此創建一個過程,因為它涉及到創建一個新的OrderOrderType = 3對每個OrderOrderType = 1 ,創建必須具備的每個新訂單receivedActivityID = 1

有人可以幫我開始這個邏輯和過程嗎?

這是我開始使用的觸發器創建,但是由於語法錯誤,我無法使其執行,並且仍然需要弄清楚如何不僅為每個具有OrderTypeID(1) OrderTypeID(3) Order創建新的OrderOrderTypeID(3)OrderTypeID(1)

而且還要創建一個新的ActivityID = 1 OrderActivity

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
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

這是成功完成我所需要的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM