sqlserver禁止management studio的自动提交事务(转)

本文介绍如何在SQL Server Management Studio中禁用自动提交事务功能,包括使用隐式事务和显式事务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:sql server2008

默认management studio是自动提交事务,即一个语句就一个事务,那么如何禁止其自动提交呢?下面有个不错的方法,大家可以参考下

自动提交事务 

默认management studio是自动提交事务,即一个语句就一个事务。 

隐式事务 

打开Sql Server Managerment Studio,登陆到实例当中。 
Tools -> Options 
Query Execution -> SQL Server -> ANSI 

将SET IMPLICIT_TRANSACTIONS前打上勾 
这样,当一个事务结束,新的语句会自动开启一个新的事务。此为隐式事务。事务最终也是通过我们的commit或rollback来结束。 

显式事务 

begin transaction 
delete from erpdb.dbo.mtl_categories_b 
rollback transaction 
--commit transaction
转自:http://www.jb51.net/article/51014.htm

### 如何在 SQL Server Management Studio (SSMS) 中执行提交操作 在 SQL Server Management Studio (SSMS) 中,事务管理通常通过 `BEGIN TRANSACTION`、`COMMIT TRANSACTION` 和 `ROLLBACK TRANSACTION` 来实现。如果未显式定义事务,则 SSMS 默认会自动提交每条语句[^3]。 当需要手动控制事务提交更改时,可以通过以下方式完成: #### 手动提交事务 1. **启动事务** 使用 `BEGIN TRANSACTION` 命令来开启一个新的事务。 ```sql BEGIN TRANSACTION; ``` 2. **执行查询或修改操作** 在事务中运行所需的查询或数据修改命令。例如: ```sql INSERT INTO dbo.student (name, age) VALUES ('Alice', 25); UPDATE dbo.student SET age = 26 WHERE name = 'Alice'; ``` 3. **提交事务** 当所有操作完成后,使用 `COMMIT TRANSACTION` 提交所做的更改。 ```sql COMMIT TRANSACTION; ``` 如果没有调用 `COMMIT TRANSACTION` 而直接关闭窗口或中断连接,事务中的更改不会被永久化,而是会被回滚。 #### 自动提交模式下的行为 如果未启用显式事务,在 SSMS 的默认设置下,每次执行的单独语句都会立即生效并持久化到数据库中。这意味着无需额外的操作即可使更改生效。 #### 设置自动提交模式 为了验证当前是否处于自动提交模式,或者切换该模式的状态,可以在工具栏上查找“事务”选项按钮。此功能允许临时禁用自动提交以便批量处理多步操作后再统一提交。 --- ### 示例代码 以下是完整的事务示例,展示如何安全地应用一系列变更并通过提交使其生效: ```sql -- 开始新事务 BEGIN TRANSACTION; -- 插入一条记录 INSERT INTO dbo.student (name, age) VALUES ('Bob', 30); -- 更新同一名字对应的年龄字段 UPDATE dbo.student SET age = 31 WHERE name = 'Bob'; -- 如果一切正常则提交事务 COMMIT TRANSACTION; -- 若发生错误可选择回滚而非提交 -- ROLLBACK TRANSACTION; ``` 上述脚本确保只有成功完成全部步骤后才会更新实际存储的数据集。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值