1
可以說我有這個批次:
SQL顯式批次執行
// Insert two order lines for order #2002 (Order_Lines table)
// Update order #2002 Total Quantity (Orders table)
INSERT INTO Order_Lines (OrderID, Line, PartID, Quantity)
VALUES (2002, 1, 1234, 10);
INSERT INTO Order_Lines (OrderID, Line, PartID, Quantity)
VALUES (2002, 2, 5678, 5);
UPDATE Orders
SET TotalQty = (SELECT SUM(Quantity) FROM Order_Lines WHERE OrderID = 2002)
WHERE OrderID = 2002;
當我運行它,並在批量服務器等各個語句執行完它開始執行下一條語句之前?
我真的很想知道的是,如果我運行這個批次,訂單表將會正確更新。 (如果插入先執行,最後更新,則應正確更新。)
順便說一下,我使用的是SQL 2005和2008服務器。
語句執行是串行的。每個語句將相繼執行一個,可能即使一個失敗。你應該看看'SET XACT_ABORT ON'及其對同一批次執行的查詢效果。 –
@ ta.speot.is:感謝您對「SET XACT_ABORT ON」 – Administrateur