2
是否有可能基於XACT_STATE插入數據到表中。例如:如果錯誤,然後插入
IF(XACT_STATE() = 1)
BEGIN
INSERT INTO TABLE1 VALUES()
COMMIT TRANSACTION
END
ELSE
IF(XACT_STATE() = -1)
BEGIN
INSERT INTO TABLE2 VALUES()
ROLLBACK TRANSACTION
END
SELECT ERROR_NUMBER() AS ERRORNUMBER,
ERROR_SEVERITY() AS ERRORSEVERITY,
ERROR_STATE() AS ERRORSTATE,
ERROR_PROCEDURE() AS ERRORPROCEDURE,
ERROR_LINE() AS ERRORLINE,
ERROR_MESSAGE() AS ERRORMESSAGE1
如果這是不可能的,是否有其他選擇?
@NathanOliver,用戶沒有大喊大叫。所有大寫都是有效的SQL語法。 – Andy
如果事務被分類爲不可接受的,那麼在您的示例中,您不能執行像INSERT INTO TABLE2這樣的寫入操作,只能執行讀取操作和回滾。 –
@在標題中,這是非常**可爭議的。因爲他*可以*使用小寫字母。事實上,所有上限的表面效應具有更大的權重,因爲替代方案也是正確的。 – Deduplicator