0

I heard in SQL I do not have to commit every statement. Perhaps create I don't have to. So can you answer me which Statements I have to commit? I read, that I have to commit all transactions, but I don't know what this is and can't find it anywhere.

Thanks for your help.

4

2 回答 2

2

根据 SQL 标准,大多数需要事务的语句都会自动打开一个。

如果语句成功完成,某些数据库引擎(例如 SQL Server)将(默认情况下)自动提交事务。请参阅自动提交事务

自动提交模式是 SQL Server 数据库引擎的默认事务管理模式。每个 Transact-SQL 语句在完成时都会提交或回滚

SQL Server 还具有隐式转换模式,该模式将使事务保持打开状态,直到显式提交。

在第二种这样的模式下运行时(我相信这是 Oracle 的默认模式),或者如果您已明确创建事务,则何时提交事务取决于您作为开发人员。它应该是当您完成对数据库的“完整”操作集时。

于 2013-10-15T12:46:30.467 回答
0

如果您BEGIN进行交易,那么您必须ROLLBACK要么COMMIT

例子:

BEGIN TRAN
    --Your code 
    INSERT INTO
    NewTable
    SELECT *
    FROM TABLE
COMMIT TRAN

如果你不使用它,它会在执行时提交。因此,以下操作要么失败,要么被提交:

INSERT INTO
NewTable
SELECT *
FROM Table

如果出现错误(例如数据库中没有 NewTable),执行将引发错误并且事务将回滚。如果没有错误,事务将被提交。

于 2013-10-15T12:41:19.740 回答