希望的情况是这样的
begin tran
for(int i =1;i<N;i++)
{
执行存储过程(此存储过程有2个操作,insert,update)
}
commit tran or roolback tran
循环后,没有错误就一起提交,有就都不提交,
这样写有没有问题?存储过程中的insert和update 是不是不能加事务了??
begin tran
for(int i =1;i<N;i++)
{
执行存储过程(此存储过程有2个操作,insert,update)
}
commit tran or roolback tran
循环后,没有错误就一起提交,有就都不提交,
这样写有没有问题?存储过程中的insert和update 是不是不能加事务了??
解决方案 »
- jquery ajax问题
- 关于.net快速开发平台
- 服务器空间怎么绑定字符串啊?
- |zyciis| 求正则代换文字 将 1232aa422AA2435aA3 将AA替换为 $key$ 结束为 1232aa422$AA$2435$aA$3 第二贴现率 谢谢
- IIS asp.net1.0与asp.net2.0
- 网卡问题,请大家帮我看看
- datagird中找Text控件
- asp.net中.关于客户端javascript调用服务器端程序的问题.
- extjs和fusioncharts的问题
- 请问如何验证日期类型?
- ajax.dll ajaxPro.dll 是微软发布的吗? 如果不是那是谁发布的?我发现这个问题没人知道啊!!
- 这样的效果怎么实现
ALTER PROCEDURE [dbo].存储过程名
@Message nvarchar(max) output
AS
BEGIN BEGIN TRAN
BEGIN TRY
--这里面写SQL语句 --提交事务
COMMIT TRAN
SET @Message='交易完成'
END TRY
BEGIN CATCH
--回滚事务
ROLLBACK TRAN
SET @Message='交易失败'
END CATCH
END
==========================
晕.我没看清楚,我以为你写的就是一个存储过程.写里边写外边都行,如果放到存储过程里边.那就是针对一个过程中的操作进行提交或回滚
如果是写在外边.就是对你所有的操作提交或回滚(要保证是在同一个事务中)
我是从gridview取N条记录,对这些记录进行操作(放在事务里),每个操作有insert和update,如果有一条记录操作时有问题,已经操作的记录都需要回滚
知道怎么做了
for(int i =1;i <N;i++)
{
--执行存储过程(此存储过程有2个操作,insert,update)
insert操作
if @@rowcount=0 --影响的行数
rollback
else
update操作
if @@rowcount=0 --影响的行数
rollback
}
commit
end tran
不然存储过程中以commit
外面rollback也没用了这样写就行