CREATE PROCEDURE dp_inseruser
@id char(50),
@pwd char(50),
@name char(50),
@num int
AS
BEGIN TRANSACTION
insert userinfo(id,pwd,name,num) values (@id,@pwd,@name,@num)
if @@error<>0
begin
rollback TRANSACTION
return
end
insert logininfo(m_user,m_time,m_ip) values(@name,@id,@pwd)
if @@error<>0
begin
rollback TRANSACTION
return
end
COMMIT TRANSACTION
要进行两次判断,因为两次的操作返回是不一样的
@id char(50),
@pwd char(50),
@name char(50),
@num int
AS
BEGIN TRANSACTION
insert userinfo(id,pwd,name,num) values (@id,@pwd,@name,@num)
if @@error<>0
begin
rollback TRANSACTION
return
end
insert logininfo(m_user,m_time,m_ip) values(@name,@id,@pwd)
if @@error<>0
begin
rollback TRANSACTION
return
end
COMMIT TRANSACTION
要进行两次判断,因为两次的操作返回是不一样的
@id char(50),
@pwd char(50),
@name char(50),
@num int
AS
declare @errorcount int
set @errorcount = 0
BEGIN TRANSACTION
insert userinfo(id,pwd,name,num) values (@id,@pwd,@name,@num)
set @errorcount = @errorcount + @error
insert logininfo(m_user,m_time,m_ip) values(@name,@id,@pwd)
set @errorcount = @errorcount + @error
if @errorcount>0
begin
rollback TRANSACTION
return
end
COMMIT TRANSACTION
GO
……
begin tran
……
if @@error<>0 goto OnError --出了错误到OnError段处理
……
commit tran
OnError: rollback tran你可以做做测试。
@id char(50),
@pwd char(50),
@name char(50),
@num int
AS
BEGIN TRANSACTION
insert userinfo(id,pwd,name,num) values (@id,@pwd,@name,@num)
if @@error<>0
begin
rollback TRANSACTION
return
end
insert logininfo(m_user,m_time,m_ip) values(@name,@id,@pwd)
if @@error<>0
begin
rollback TRANSACTION
return
end
COMMIT TRANSACTION
GO