我正在使用spring引导程序将一些数据加载到MSSQL服务器中的子表。我从一个服务中获取数据,并为每个项循环插入语句。某些损坏的数据违反了外键约束。我想跳过违反FK约束的数据并继续插入剩余数据。
我正在使用下面的插入查询来执行相同的操作begin try INSERT INTO [dbo].[TABLENAME](.....column names......)VALUES(.....) end try begin catch end catch
;
try-catch正在处理抛出的FK约束异常,并允许程序继续执行循环中的其他记录而不会出现任何问题,但它也不会因任何其他约束违规而抛出错误。是否有方法在try-catch中特别提到错误类型,以便它只处理FK约束。
我能够在Oracle中使用exception when dup_val_on_index then
在其他程序中执行类似的约束特定捕获。非常感谢任何帮助!
1条答案
按热度按时间eqqqjvef1#
可以在
begin catch end catch
块中使用@@ERROR
、ERROR_NUMBER()
或ERROR_MESSAGE()
。示例:-