我有一個包含多個更新和插入查詢的SP。如果任何查詢給出錯誤,執行是否轉移到下一個語句?例如,在SQL Server中,如果第一條語句拋出錯誤,執行是否會移至下一條語句?
CREATE PROCEDURE Test()
AS
BEGIN
INSERT INTO SomeTable VALUES (1, 2, 3)
UPDATE SomeTable SET X = 4 WHERE Y = 5
END
在上面的例子中,如果INSERT語句拋出錯誤,會執行移動到下一個UPDATE語句嗎?
有時。看看XACT_ABORT。 – 2012-04-06 21:54:28
「這取決於」。錯誤可以執行以下任何連接終止,範圍墮胎。聲明終止和批次墮胎。並不總是很直觀地預測特定錯誤的類別。請參見[SQL 2000中的錯誤處理 - 背景](http://www.sommarskog.se/error-handling-I.html) – 2012-04-06 21:55:37
@ ta.speot.is我認爲XACT_ABORT OFF | ON只適用於批次。 – 2012-04-06 22:02:41