SQL Server存储过程里面是更新某个表,那么如何在这个基础上增加更新失败时的事务回滚语句?

CREATE PROCEDURE [dbo].[PROC_UPD_USER]
@DivCD INT,
@ULCD VARCHAR(64),
@UserCD VARCHAR(64)
AS
UPDATE TM_TCMDivUL
SET
ChargeULCD = @ULCD,
Maintainer = @UserCD,
Modified = GETDATE()
WHERE
DivCD = @DivCD
GO

第1个回答  2016-08-20
更新失败不需要回滚因为都没执行成功,一般是多个插入,更新操作需要事务处理追问

如果是多个插入的话怎么写回滚?

如何在SQL存储过程中处理错误
1 、使用存储过程执行事物,需要开启XACT_ABORT参数(默认值为Off),将该参数设置为On,表示当执行事务时,如果出错,会将transcation设置为uncommittable状态,那么在语句块批处理结束后将回滚所有操作;如果该参数设置为Off,表示当执行事务时,如果出错,出错的语句将不会执行,其他正确的操作继续执行。2、...

sql server 存储过程
1、启动事务格式:begin tran 事务名或变量 with mark 描述2、结束事务格式:commit tran 事务名或变量 (事务名与begin tran中的事务名一致或commit work 但此没有参数3、回滚事务 rollback tran 事务名或变量 | savepoint_name | savepoint_variable 或rollback work 说明:清除自事务的起点或到某个保存点所做的...

SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的...
只要将以上代码在“查询分析器”里执行一次,SQL SERVER就会在当前数据库中创建一个名为“upGetUserName”的存储过程。你可以打开“企业管理器”,选择当前操作的数据库,然后在左边的树型列表中选择“存储过程”,此时就可以在右边的列表中看到你刚刚创建的存储过程了(如果没有,刷新一下即可)。 二、存储过程的调用 ...

我想题目是《SQL-Server数据库安全管理措施》很着急啊?快来帮我啊...
我在和 SQL Server 打交道的时候还用过 tbl 来索引表,但我用 sp_company (现在用 sp_feft_)标识存储过程,因为在有的时候如果我发现了更好的处理办法往往会保存好几个拷贝。我在实现 SQL Server 2000 时用 udf_ (或者类似的标记)标识我编写的函数。工欲善其事, 必先利其器 采用理想的数据库设计工具,比...

sql server有哪些查询优化方法
在 SQL Server 中,这个性能由 timestamp 数据类型提供,它是一个二进制数字,表示数据库中更改的相对顺序。每个数据库都有一个全局当前时间戳值:@@DBTS。每次以任何方式更改带有 timestamp 列的行时,SQL Server 先在时间戳列中存储当前的 @@DBTS 值,然后增加 @@DBTS 的值。如果某 个表具有 timestamp 列,...

存储过程与事物回滚的问题
答案是:任何情况下的事务嵌套.只要任何地方出错,全回滚.事务组合一系列任务为一个执行单元。每个事务以特定的任务开始,以特定的任务结束。当所有的任务成功时事务成功,当任何一个任务失败时,事务失败。所以一个事务只有两个结果:失败或成功。请参考:《SQL Server的事务和错误处理》:http:\/\/www.it...

sql中的存储过程set是什么意思
SQL 语句里Update...set连用是用于修改表中的数据,set是将新值更新到指定列中。Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;例如下句是更新某一行中的一个列,为 lastname 是 "Wilson" 的人添加 firstname:UPDATE Person SET FirstName = ...

关于sqlserver中存储过程里面in关键字的使用
首先就是@chooseid的问题 如果你这样in的话 即使你的 @chooseid=1,2,3 他也会把这几个看做一个整体 也就是把 id 同 '1,2,3'这个整体去比对 而不是拆开 这样的话只能用动态去构建 declare @sql varchar(1000)set @sql=''select @sql='delete from table1 where id in ('+ @chooseid...

在sql Server,临时表和表变量之间的区别
表变量较临时表产生更少的存储过程重编译。针对表变量的事务仅仅在更新数据时生效,所以锁和日志产生的数量会更少。由于表变量的作用域如此之小,而且不属于数据库的持久部分,所以事务回滚不会影响表变量。表变量可以在其作用域内像正常的表一样使用。更确切的说,表变量可以被当成正常的表或者表表达式...

数据库事务、存储过程、函数以及触发器之间的区别和联系
并发问题归结:数据问题(脏读、幻读、不可重复读)、数据更新问题(更新丢失)。 一、存储过程的概念 ①存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。 ②存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(可以有参数,也可以没有)来执行它。 ③存储...

相似回答