SQL存储过程出错,怎样让他不再执行后面的SQL语句

如题
我的存储过程是一个插入语句,还有一个更新语句,但是我要执行的是插入了才更新,没插入成功则不更新,但是,我试了下插入,第一次插入,执行成功,第二次插入同样的数据,但是主键冲突导致插入出错,但是更新语句却执行了

你可以在插入操作完成后获取受影响的行数(用函数@@rowcount),然后写一个判断,如果受影响的行数(也就是插入的行数)大于0就继续执行下面的更新语句,否则不执行
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-08
存储过程出错本来就不会执行后面的sql语句啊。。 方便贴sql语句么。。追问

我的存储过程是一个插入语句,还有一个更新语句,但是我要执行的是插入了才更新,没插入成功则不更新,但是,我试了下插入,第一次插入,执行成功,第二次插入同样的数据,但是主键冲突导致插入出错,但是更新语句却执行了

SQL存储过程出错,怎样让他不再执行后面的SQL语句
你可以在插入操作完成后获取受影响的行数(用函数@@rowcount),然后写一个判断,如果受影响的行数(也就是插入的行数)大于0就继续执行下面的更新语句,否则不执行

存储过程错误sqlno.
存储过程出现 SQL statement ignored错误是:存储过程语句错误,字段或变量名可能拼错,导致存储过程无法执行。解决方法:仔细检查存储过程里的变量,字段,语句等是否正确。PL\/SQL的特点:1、PL\/SQL是一种块结构语言,一个PL\/SQL程序就是一个块,块中可以嵌套子块,能够使一组SQL语句的功能更具模块化程序...

sql server 存储过程执行出错时后面的代码就不能执行了怎么办?_百度知 ...
create proc sp_procasbegin--试试这个 可以加入try catchBEGIN TRY select cast(column1 as datetime) from TableEND TRYBEGIN CATCH print '错误'END CATCH delete from Tableend

安装金蝶专业版时出现:执行SQL语句出错:未能找到存储过程‘sp_addsrvrole...
回答:右下角是否有SQL正常开启,以及用KIS图标的服务器开启了?

sql存储过程sql片段超出最大值怎么办?
例如,使用索引、减少JOIN操作等。使用临时文件:将SQL片段保存到文件中,然后使用BULK INSERT命令将其加载到临时表中。这种方法适用于需要处理大量数据的情况。需要注意的是,在处理存储过程或SQL片段时,应尽可能避免使用大量的字符串连接操作和重复的代码块,以减少代码量和执行时间。

SQL存储过程,如何回滚啊?
SET XACT_ABORT 的设置是在执行或运行时设置,而不是在分析时设置。示例 下列代码示例导致在含有其他 Transact-SQL 语句的事务中发生外键冲突错误。在第一个语句集中产生错误,但其他语句均成功执行且事务成功提交。在第二个语句集中,将 SET XACT_ABORT 设置为 ON。这导致语句错误使批处理终止,并使...

存储过程出现 SQL statement ignored错误是什么
当存储过程遭遇 "SQL statement ignored" 错误时,问题根源在于存储过程中的SQL语句可能存在拼写错误或命名不准确,导致无法顺利执行。解决这一问题的关键是进行细致的代码审查,确保变量、字段和语句的正确性。深入理解,PL\/SQL引擎在数据库管理系统中扮演着重要角色。它接收来自客户端的SQL语句,对其进行语法...

sql存储过程中事务出现错误回滚,那么在回滚之后的语句会执行吗
一般回滚操作都是写在异常处理,或是sql的最后。如果你的sql中出现错误 ,代码会立即跳转到错误处理代码上执行,比如回滚,但紧接在错误行之后的代码不会执行的。如 1.update ...;2.select ...;3.when Exception ...rollback;4.insert into ...以上伪代码,如果行1出错,行2将不会执行,直接...

如何在SQL存储过程中处理错误
1 、使用存储过程执行事物,需要开启XACT_ABORT参数(默认值为Off),将该参数设置为On,表示当执行事务时,如果出错,会将transcation设置为uncommittable状态,那么在语句块批处理结束后将回滚所有操作;如果该参数设置为Off,表示当执行事务时,如果出错,出错的语句将不会执行,其他正确的操作继续执行。2、...

SQL中怎么退出IF语句,即出现报错不执行后面的语句
if @FbillnoNum not like 'HTSO%' begin select [执行结果]='错误: [销售订单号]参数应该为HTSO开头!' return --加个return 退出执行SQL end类似这样的。

相似回答