我已经通过 SQL Server Manager 对我的记录进行了一些更新。
由于 Update 语句没有明确提交,我正在尝试手动编写它。
Update mytable
set status=0;
Commit;
我收到消息,因为 Commit 没有开始事务
我已经通过 SQL Server Manager 对我的记录进行了一些更新。
由于 Update 语句没有明确提交,我正在尝试手动编写它。
Update mytable
set status=0;
Commit;
我收到消息,因为 Commit 没有开始事务
SQL Server Management Studio 启用了隐式提交,因此所有执行的语句都被隐式提交。
如果您来自默认情况下不自动提交命令的 Oracle 背景,这可能是一件可怕的事情,但这并不是什么大问题。
如果您仍想使用 ad-hoc 事务,您可以随时执行
BEGIN TRANSACTION
在 SSMS 中,然后系统等待您提交数据。
如果您想复制 Oracle 行为并启动隐式事务,每当发出一些 DML/DDL 时,您可以设置 SET IMPLICIT_TRANSACTIONS 复选框
Tools -> Options -> Query Execution -> SQL Server -> ANSI
与 oracle 不同,Sql server 不需要提交,除非您使用事务。
在您的更新语句之后,表将立即被提交,在这种情况下不要使用 commit 命令。