有幾種不同的方法來完成這一點。正如有人在上面說過的,觸發器可能是要走的路。這裏有一個簡單的腳本可以在這種情況下工作。
--Create test tables
CREATE TABLE #TEMP1
(
product_id int,
mission_Id int,
mission_status int,
mission_source int,
mission_destination VARCHAR(50)
);
CREATE TABLE #TEMP2
(
product_id int,
location_id VARCHAR(50)
);
--Test data
INSERT INTO #TEMP1
VALUES(1,1,1,2,'Mars')
INSERT INTO #TEMP1
VALUES(2,1,1,2,'Jupiter')
INSERT INTO #TEMP1
VALUES(3,1,1,2,'Venus')
INSERT INTO #TEMP1
VALUES(4,1,1,2,'Saturn')
--Check for mission_status of 1
SELECT product_id, mission_destination FROM #TEMP1 WHERE mission_status = 1
IF @@ROWCOUNT > 0
BEGIN
INSERT INTO #TEMP2 (product_id,location_id) SELECT product_id, mission_destination FROM #TEMP1 WHERE mission_status = 1
DELETE FROM #TEMP1 WHERE mission_status = 1
END
SELECT * FROM #TEMP1
SELECT * FROM #TEMP2
此外,這聽起來更像是一個'TRIGGER'的工作,而不是'STORED PROCEDURE'。 – Siyual
我建議切換步驟的順序。另外,表b沒有任務目標字段。 –