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