网站由那些组成,论文中网站数据如何做脚注,大型平台网站开发,宁波网红打卡的景点SQL SERVER 2000中不支持TRY, CATCH语法#xff0c;所以对于异常的捕捉处理只可以根据ERROR来判断#xff1b; 经常的用法是在执行语句后直接判断ERROR 0 看是不是执行成功。 然而日前因为存储过程的多并发调用#xff0c;对一个表插入数据#xff0c;产生主键冲突…SQL SERVER 2000中不支持TRY, CATCH语法所以对于异常的捕捉处理只可以根据ERROR来判断 经常的用法是在执行语句后直接判断ERROR 0 看是不是执行成功。 然而日前因为存储过程的多并发调用对一个表插入数据产生主键冲突的情况经过分析由如下问题 代码1: BEGIN TRAN INSERT INTO PSR..zkj_test(id) VALUES(1) if ERROR 0 begin SELECT ERROR as xxx end COMMIT TRAN 输出结果 服务器: 消息 2627级别 14状态 1行 1违反了 PRIMARY KEY 约束 PK__zkj_test__4CB7D400。不能在对象 zkj_test 中插入重复键。语句已终止。xxx ----------- 0 所影响的行数为 1 行 ERROR输出为零但是进入了if表示ERROR 对于每一条SQL语句执行都会重新赋值此时不能看到你想看到上句执行错误的值 代码2 BEGIN TRAN DECLARE errnum AS int INSERT INTO PSR..zkj_test(id) VALUES(6) SET errnum ERROR if errnum 0 begin SELECT errnum as xxx end COMMIT TRAN 输出结果 服务器: 消息 2627级别 14状态 1行 1违反了 PRIMARY KEY 约束 PK__zkj_test__4CB7D400。不能在对象 zkj_test 中插入重复键。语句已终止。xxx ----------- 2627 所影响的行数为 1 行 可以达到预期效果 两段代码的对比一目了然关键就在于临时变量所以以后必须十分注意。转载于:https://www.cnblogs.com/jiqiwoniu/p/5195924.html