在SQL Server Management Studio中使用手动提交更改

Hi Teddy!Teddy Li的技术博客 - 人生就像try/catch, catch不住你就挂了


之前一直使用了PL/SQL作为数据库管理工具,所有执行过了的改动都必须按提交按钮才commit到数据库,


后来用SQL Server Management Studio,都是自动提交的方式,特别是在生产环境上,总是如履薄冰,担心出什么乱子。 在SQL Server Management Studio中禁用自动提交的设置如下:


在选项-查询执行-sql server-ANSI中将"SET_IMPLICIT_TRANSACTIONS"勾上

提交方式有两种,一是在显式执行"commit;",二是在关闭查询窗口的时候会有以下窗口弹出,


可以在此处选择提交或者Rollback. 遗憾的是,对于数据编辑器中的改动,仍然没有找到手动提交的办法。

### 如何在 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、付费专栏及课程。

余额充值