Sql server &引用;“开始交易”;多次删除/插入中的用法
我创建了一个具有大量删除/插入操作的临时程序。 对于数据完整性,如果任何操作出错,我希望回滚所有操作。 以下是伪代码:Sql server &引用;“开始交易”;多次删除/插入中的用法,sql-server,transactions,Sql Server,Transactions,我创建了一个具有大量删除/插入操作的临时程序。 对于数据完整性,如果任何操作出错,我希望回滚所有操作。 以下是伪代码: BEGIN TRY BEGIN TRANSACTION INSERT INTO New_Table VALUES(......) DELETE FROM Old_Table COMMIT END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK END CATCH 这里有性能问题吗?我
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO New_Table VALUES(......)
DELETE FROM Old_Table
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
这里有性能问题吗?我将在本节中对插入/删除数据使用此逻辑大约10次。如果您需要确保数据安全,则使用事务。上面的代码看起来不错。基于上述情况,我认为你不会做得更好。请注意,简单地说,事务将假定一切正常,因此提交几乎与没有事务一样快。只有在执行回滚时,您才真正需要担心性能。如果您想要额外的安全性,您可能还需要启用
设置XACT\u ABORT
。见MSDN: