首页 > 解决方案 > 有什么方法可以识别 NodeJS 中的 SQL Server 存储过程返回的错误

问题描述

场景:执行存储过程将行插入表中

输出:正常,应该按照 SQL 语句中的设置插入记录

失败案例:如果违反了唯一键,它不应该更新并抛出错误

在 Azure Studio 中手动执行时,上述所有步骤均有效。使用 ASYNC 调用与 NodeJS 集成时也是如此,它仅适用于 +ve 测试用例;这是插入的新记录,当插入重复记录时,recordset.length 被视为未定义

这个 undefined 在6.3.1中可见,在6.2.3的早期版本中不可见

现在在6.3.1中,我只能找到使用returnValue的选项。有谁知道其他可用于获取错误通知的功能。下面是输出

如果成功,我得到的结果为

{
  recordsets: [],
  recordset: undefined,
  output: {},
  rowsAffected: [],
  returnValue: 0
}

标签: node.jssql-server

解决方案


您可以尝试将您的 INSERT/UPDATE 放在 TRY-CATCH 块中,然后返回一个特定的整数 ir 一个 RAISE ERROR。此外,将它放在事务上以在 CATCH 块上回滚。


推荐阅读