大家帮我看一下这个存储过程出了什么问题!!!???
以下是我的存储过程:解决的问题是在注册时如果登陆名存在返回"信息1",如果在插表中途异常出错则返回"信息2",插入成功返回"信息3"..现在的问题是当异常出错时造成调用该存储过程的页面出错..在查询分析器里的报错信息是:
服务器: 消息 3902,级别 16,状态 1,过程 pr_inter_reg,行 62
COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION。
是不是我的存储过程存在结构错误问题
create proc pr_inter_reg @cpname nvarchar(40)
as
set nocount on
create table #t (str nvarchar(40))
select * from Tlogname where logname=@cpname
if @@rowcount>0
begin
insert #t select '登陆名存在!' ------信息1
end
else
begin
insert #t select '异常出错!' -------信息2
begin tran inter_insert
insert Tlogname select @cpname
if @@error!=0 or @@rowcount=0 ----Tlogname表中lognid是自增的
begin
rollback tran inter_insert
end
insert Tcompany_user select lognid,@cpname -----Tcompany_user 表
from Tlogname where logname=@cpname
if @@error!=0 or @@rowcount=0
begin
rollback tran inter_insert
end
insert Tcuser_assist select lognid,'n'
from Tlogname where logname=@cpname
if @@error!=0 or @@rowcount=0
begin
rollback tran inter_insert
end
insert Tcuser_bill select lognid,'0',3
from Tlogname
where Tlogname.logname=@cpname
if @@error!=0 or @@rowcount=0
begin
rollback tran inter_insert
end
commit tran inter_insert
update #t set str='注册成功!' ------信息3
end
select str from #t
go