CREATE PROCEDURE Pro_TestReutrnValue
(
@result varchar(100) output,
@title varchar(100)
)
as
begin transaction
insert into tg_advices(title)values(@title);
if @@error<>0
begin
set @result='成功'
print @@error
print @result
commit transaction
end
if @@error=0
begin
set @result='失败'
print @result
print @@error
-- 回滚事务
rollback transaction;
end
我执行存储过程 为什么失败呢 应该可以插入数据@@error<>0应该表示没有发生错误吧 为什么没有执行呢?
(
@result varchar(100) output,
@title varchar(100)
)
as
begin transaction
insert into tg_advices(title)values(@title);
if @@error<>0
begin
set @result='成功'
print @@error
print @result
commit transaction
end
if @@error=0
begin
set @result='失败'
print @result
print @@error
-- 回滚事务
rollback transaction;
end
我执行存储过程 为什么失败呢 应该可以插入数据@@error<>0应该表示没有发生错误吧 为什么没有执行呢?
@@error<>0 代表有错误
CREATE PROCEDURE Pro_TestReutrnValue
(
@result varchar(100) output,
@title varchar(100)
)
as
declare @error_num int
begin transaction
insert into tg_advices(title)values(@title);if @@error <>0
begin
set @result='失败'
print @result
print @@error
-- 回滚事务
rollback transaction;
end
else
begin
set @result='成功'
print @@error
print @result
commit transaction
end
(
@result varchar(100) output,
@title varchar(100)
)
as
declare @error_num int
begin transaction
insert into tg_advices(title)values(@title);
select @error_num=@@error -- 因为 @@error记录了上一个T-SQL的结果,任何一个SQL语句都会更新这个结果,所以要用一个中间变量来保存
if @error_num <>0
begin
set @result='失败'
print @result
print @error_num
-- 回滚事务
rollback transaction;
end
else
begin
set @result='成功'
print @error_num
print @result
commit transaction
end
表示发生了错误
@@error = 0
commit
2.if @@error<>0最好加else
3.select @@rowcount 来看执行行数