我在SQL中听到我不必提交每个语句。也许创造我没有。 所以你能回答我必须提交哪些陈述吗? 我读过,我必须提交所有交易,但我不知道这是什么,在任何地方都找不到。
感谢您的帮助。
答案 0 :(得分:2)
根据SQL标准,大多数需要事务的语句都会自动打开一个。
如果语句成功完成,某些数据库引擎(如SQL Server)将(默认情况下)自动提交事务。请参阅Autocommit Transactions。
自动提交模式是SQL Server数据库引擎的默认事务管理模式。每个Transact-SQL语句在完成时都会提交或回滚
SQL Server还具有Implicit Conversions模式,该模式将使事务处于打开状态,直到明确提交为止。
当以第二种这样的模式运行时(默认情况下,我相信,对于Oracle),或者如果您已明确创建了一个事务,那么当您提交时,由您作为开发人员决定交易。应该是在您完成针对数据库的“完整”操作集时。
答案 1 :(得分:0)
如果您BEGIN
进行了一次交易,那么您必须ROLLBACK
或COMMIT
示例:
BEGIN TRAN
--Your code
INSERT INTO
NewTable
SELECT *
FROM TABLE
COMMIT TRAN
如果您不使用它,则会在执行时提交。因此,以下内容将失败或被提交:
INSERT INTO
NewTable
SELECT *
FROM Table
如果出现错误(如数据库中没有NewTable),执行将引发错误,事务将回滚。如果没有错误,将提交交易。