首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 回滚 sql存储过程回滚哪个好,该怎么解决

2012-04-08 
c# 回滚 sql存储过程回滚哪个好c# 回滚 sql存储过程回滚哪个好,现在在网络不太好或其它未知情况下,在SQL存

c# 回滚 sql存储过程回滚哪个好
c# 回滚 sql存储过程回滚哪个好,现在在网络不太好或其它未知情况下,在SQL存储过程里加的set xact_abort on 回滚没用,一个过程里先插入,后更新,往往出现插入了但是没有更新。


所以想问到底是要写在代码里?还是存储过程写的有问题。

代码里是FOR 循环 提交的数据。

[解决办法]
这种解决方案有很多重复的处理,特别是如果你的业务逻辑需要2个以上的T-SQL语句时。比较优雅的解决方案是组合所有的代码,使用一个通用的错误处理。

CREATE PROCEDURE addTitle(@title_id VARCHAR(6), @au_id VARCHAR(11),
@title VARCHAR(20), @title_type CHAR(12))
AS
 
BEGIN TRAN
INSERT titles(title_id, title, type)
VALUES (@title_id, @title, @title_type)
 
IF (@@ERROR <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END
 
INSERT titleauthor(au_id, title_id)
VALUES (@au_id, @title_id)
 
IF (@@ERROR <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END
 
COMMIT TRAN
 
RETURN 0

热点排行