SQL显式批处理执行

时间:2013-01-25 04:34:02

标签: sql sql-server sql-server-2008 tsql sql-server-2005

让我说我有这批:

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

当我运行它时,服务器是否等待批处理中的每个语句在开始执行下一个语句之前完成执行?

我真正想知道的是,如果运行此批次,Orders表是否会正确更新。 (如果首先执行插入并最后执行更新,则应正确更新。)

顺便说一下,我正在使用SQL 2005和2008服务器。

1 个答案:

答案 0 :(得分:0)

是的,您可以期望每个语句的结果可用于后续语句。