BEGIN TRAN 为开始事务
COMMIT TRAN 为提交事务
ROLLBACK TRAN 为回滚事务
BeginTrans 启动新的事务,之后任何改变不会立即提交
CommitTrans 保存所有更改并结束当前事务。它也可以启动新事务。
RollbackTrans 取消当前事务中所做的任何更改并结束事务。它也可以启动新事务。
$sql2 没发现错误 执行功 段验证 直接 print_r($r2) 看否真SQL错误 另外 !$r1 种写否判断错误 $r2 输错误 否 $r2 === false 许其 用 var_dump 查看
简单的来说,我给你举两个例子:
1、对数据库做了ddl的 *** 作,但是没有进行提交 *** 作,此时就会提示受影响行数,如果最后没有进行提交 *** 作,数据就会回滚。
2、对数据进行 *** 作时,如果数据报错,如批量插入数据,其中有一条无法插入,那么此次的 *** 作就会被视为无效,数据库就会回滚,以保证数据的完整性。
3、在程序开发时,是以事务为原子性 *** 作的,此时可能因为一个业务 *** 作会对数据库的多个表进行增删改,如果中间出现问题,那么对已 *** 作部分的数据怎么办呢? 数据库的回滚就可以解决。
只能手动删除
升级时添加的字段吧
表结构升级时应该会有执行脚本
然后根据脚本再整理出删除语句
批量执行
ALTER
TABLE
table_NAME
DROP
COLUMN
CREATE PROC [dbo][notice_Delete] --- 同时删除该通知书和对应的节点
@tbl VARCHAR(30),
@pid INT
AS
BEGIN
DECLARE @tblname VARCHAR(30) ;
DECLARE @sql VARCHAR(1000) ;
SET @tblname = @tbl
SET @sql = 'delete ' + @tblname + ' where id ='
+ CONVERT(VARCHAR(10), @pid)
BEGIN TRAN --开始事务
EXEC ( @sql
)
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
DELETE FROM tbl_treenotice
WHERE purposeid = @pid
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
COMMIT TRAN --提交事务
END
END
END
以上就是关于在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务全部的内容,包括:在VC6中,使用ODBC的SQL语句 *** 作数据库时,如何提交和回滚事务、关于数据库事务回滚的问题、数据库 为何使用 回滚等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)