| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 553 人关注过本帖
标题:[求助]请你看看怎样处理这个事务的问题?
取消只看楼主 加入收藏
nic
Rank: 2
等 级:新手上路
威 望:4
帖 子:175
专家分:0
注 册:2005-11-1
收藏
 问题点数:0 回复次数:1 
[求助]请你看看怎样处理这个事务的问题?

以下是一个注册的存储过程,插入4个表。经过测试,如果其中的某个表插入失败,事务并
不能回滚,请问当其中某个表插入失败的时候如何才能回滚事务,把已经插入成功的表回滚。(即要求要么全部插入成功,要么全部不插入,不能有的表插入成功,有的表插入失败)
CREATE PROCEDURE [dbo].[Reg]

@MenberID varchar(20),
@PassWord varchar(20),
@CompanyName varchar(100),
@Dept varchar(50),
@Add1 varchar(100),
@Add2 varchar(100),
@City varchar(50),
@Province varchar(50),
@CountryOrRegin varchar(50),
@ContactPerson varchar(20),
@PostCode varchar(20),
@Tel varchar(50),
@Fax varchar(50),
@Email varchar(50),
@WebSite varchar(100),
@InstantMessage varchar(100),
@HirePeopleID varchar(10),
@TurnOverID varchar(10),
@BizTypeID varchar(10),
@MainProduct varchar(500),
@BriefIntr text,
@BizRangeStr varchar(150)
AS

begin tran mytran
/*插入表1*/
Insert EN_MENBER(MenberID,PassWords ,CompanyName ,Dept ,Add1,
Add2,City,Province ,CountryOrRegin ,ContactPerson ,PostCode,Tel ,Fax,Email ,
WebSite ,InstantMessage ,HirePeopleID,TurnOverID ,BizTypeID ,
MainProduct ,BriefIntr )
values
(@MenberID ,
@PassWord ,
@CompanyName,
@Dept ,
@Add1,
@Add2,
@City ,
@Province ,
@CountryOrRegin ,
@ContactPerson ,
@PostCode ,
@Tel ,
@Fax,
@Email,
@WebSite ,
@InstantMessage,
@HirePeopleID ,
@TurnOverID ,
@BizTypeID ,
@MainProduct,
@BriefIntr
)

/*插入表2*/

EXEC(@BizRangeStr)

/*插入表3*/

Insert EN_MENBER_AprRcd(MenberID,AprStateID,Operator,OperatorPos)
values(@MenberID,'1','C','H')

/*插入表4*/

Insert EN_MENBER_AmndRcd(MenberID,AmendStateID,Operator,OperatorPos)
values(@MenberID,'1','C','H')

Commit tran mytran
GO

搜索更多相关主题的帖子: 事务 
2006-02-13 10:17
nic
Rank: 2
等 级:新手上路
威 望:4
帖 子:175
专家分:0
注 册:2005-11-1
收藏
得分:0 

谢谢,我知道思路了


2006-02-14 10:12
快速回复:[求助]请你看看怎样处理这个事务的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015683 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved