火
火龙真人
Unregistered / Unconfirmed
GUEST, unregistred user!
RAISEERROR就是手动引发错误啊,你的错误级别也是设置够了的,
不过既然被TRY了应该转到前台报错吧,我没做过实验,如果同时
前台后台都写,会怎么样我也不知道。但是不建议本身无错而去引发
如果检测表数据存不存在最好用参数返回,还有出错级别再设置高点
你看看有什么不同,我觉得16已经够了。我现在没装SQLSERVER没法
帮你实验,把前台抱错和后台写不一样,看看是怎么回事情。
我推理是这样的 捕捉错误写在前台,那么后台如果有错误,也就是一执行RAISEERROR
那么被你 TRY语句捕获 RAISEERROR的抱错就被捕捉了,而转为你前台的 SHOWMESSAGE
还有如果什么报错都没有,检查是不是真的执行了RAISEERROR 你干脆把IF 条件去掉
直接写RAISEERROR做个实验。
以下这个随意拿到存储过程都可以用,我建议把事务和报错都写在后台。
这样前台的代码就简单些。而且效率也高,SQLSERVER的出错号可以
由@@error来返回。
begin tran
。。。
你的具体SQL 语句
。。。
if @@error>0
begin
rollback
raiserror('出错信息',16,1)
return
end
else
commit tran
GO
不过既然被TRY了应该转到前台报错吧,我没做过实验,如果同时
前台后台都写,会怎么样我也不知道。但是不建议本身无错而去引发
如果检测表数据存不存在最好用参数返回,还有出错级别再设置高点
你看看有什么不同,我觉得16已经够了。我现在没装SQLSERVER没法
帮你实验,把前台抱错和后台写不一样,看看是怎么回事情。
我推理是这样的 捕捉错误写在前台,那么后台如果有错误,也就是一执行RAISEERROR
那么被你 TRY语句捕获 RAISEERROR的抱错就被捕捉了,而转为你前台的 SHOWMESSAGE
还有如果什么报错都没有,检查是不是真的执行了RAISEERROR 你干脆把IF 条件去掉
直接写RAISEERROR做个实验。
以下这个随意拿到存储过程都可以用,我建议把事务和报错都写在后台。
这样前台的代码就简单些。而且效率也高,SQLSERVER的出错号可以
由@@error来返回。
begin tran
。。。
你的具体SQL 语句
。。。
if @@error>0
begin
rollback
raiserror('出错信息',16,1)
return
end
else
commit tran
GO