2
SQL Server Management Studio 2008에 있는데이 쿼리를 통해 여러 OrderID를 설정하려고합니다. TempTable을 사용해야한다고 들었지만 여러 테이블 변수를 설정하는 방법에 어려움이 있습니다. 여러 테이블 변수를 사용하여 SQL에서 로컬 #temptable을 채우십시오.
DECLARE @OrderID int
DECLARE @Status int
-- FF nummer
SET @OrderID = 134
-- Huidige status
SET @Status = 4
BEGIN TRANSACTION
UPDATE FF_Task
SET tsk_FK_CurrentStatus = NULL
WHERE (tsk_FK_Order = @OrderID)
UPDATE FF_Order
SET ord_FK_CurrentOrderStatus = NULL
WHERE (ord_PK = @OrderID)
DELETE FROM FF_StatusLog
WHERE (stl_PK IN
(SELECT TOP (1) FF_StatusLog_1.stl_PK
FROM FF_StatusLog AS FF_StatusLog_1 INNER JOIN
FF_Task ON FF_StatusLog_1.stl_FK_Task = FF_Task.tsk_PK
WHERE (FF_Task.tsk_FK_Order = @OrderID)
ORDER BY FF_StatusLog_1.stl_PK DESC))
DELETE
FROM FF_OrderStatusLog
WHERE (osl_Status = @Status) AND (osl_FK_Order = @OrderID)
UPDATE FF_Task
SET
tsk_FK_CurrentStatus = (SELECT TOP (1) FF_StatusLog_1.stl_PK
FROM FF_StatusLog AS FF_StatusLog_1 INNER JOIN
FF_Task ON FF_StatusLog_1.stl_FK_Task = FF_Task.tsk_PK
WHERE (FF_Task.tsk_FK_Order = @OrderID)
ORDER BY FF_StatusLog_1.stl_PK DESC)
WHERE (tsk_FK_Order = @OrderID)
UPDATE FF_Order
SET ord_FK_CurrentOrderStatus = (SELECT TOP 1 osl_Status FROM
FF_OrderStatusLog WHERE (osl_FK_Order = @OrderID) ORDER BY osl_CreationDateTime DESC)
WHERE (ord_PK = @OrderID)
COMMIT TRANSACTION
감사합니다 : 이 내가 사용하는 원래의 쿼리입니다.
어떤 SQL Server 버전을 사용하고 있습니까? 그러면 orderID 테이블을 매개 변수로 사용할 수 있는지 또는 매개 변수를 orderID의 CSV 목록으로 변환해야하는지 여부가 결정됩니다. 또는 저장 프로 시저가 아닌 일회성 쿼리 인 경우 저장 프로 시저를 생략 할 수 있습니다. –
MS SQL Server Management Studio 2008 – Dave
일회성 쿼리입니다. (그러나 1 년 동안 여러 번 사용됨) – Dave