问题标签 [raiserror]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
4741 浏览

sql - 存储过程 - 将消息传递回用户应用程序的最佳方式

我想知道人们对在存储过程中使用 RAISERROR 将用户消息(即与业务相关的消息,而不是错误消息)传回应用程序的想法。

我公司的一些高级开发人员一直在使用这种方法,并在我们的 C# 代码中捕获 SqlException 来获取消息并将它们显示给用户。我对这种方法不满意,想知道其他人如何处理来自存储过程的这些类型的用户消息。

0 投票
2 回答
4901 浏览

sql-server - 如何使用 SQL Server 显示从 raiserror() 生成的错误消息

我正在通过 JDBC 从 jsp 与 SQL Server 2005 进行交互(这是一个分配,不是真正的项目),并且我在我正在使用的数据库中创建了一个触发器。如果在执行此触发器时不满足某个条件,我会通过 raiserror() 引发错误。我希望此错误显示在通过 JDBC 调用 SQL Server 查询的实际页面上,但目前当我打印出 SQLException.getMessage() 的结果时,我只收到以下默认消息:

事务在触发器中结束。该批次已中止。

有谁知道如何提取我在触发代码中实际传递给 raiserror 的文本?我已经尝试过:

  • SQLException.getState()
  • SQLException.getNextException()
  • SQLException.getCause()
  • SQLException.toString()
0 投票
2 回答
8581 浏览

sql - 在 SYBASE ASE 12.5 中格式化 RAISERROR 消息

在存储过程中,我试图测试参数是否为空或小于 1,如果是,则使用友好消息引发错误以及参数的值。

这是我的代码:

我想回来的是:

“ID 为 0。ID 不能为空或小于零。” “ID 为空。ID 不能为空或小于零。”

我尝试构建一个 varchar 并引发如下错误:

但这会产生错误“传递给 RAISERROR 的消息编号 27001,在 sysmessages 目录中不存在。”

0 投票
2 回答
63657 浏览

sql-server - 不同的 RAISERROR 严重级别是什么意思?

我最好的谷歌结果是这样的:

  • 11 以下是警告,而不是错误
  • 11-16可用
  • 以上16个是系统错误
  • 11-16之间没有行为差异

但是,根据 BOL,“任何用户都可以指定从 0 到 18 的严重级别”。

在我的特定存储过程中,我希望将错误返回给 .Net 客户端应用程序,因此看起来 11-18 之间的任何严重级别都可以解决问题。是否有人对每个级别的含义以及应如何使用它们有任何权威信息?

0 投票
3 回答
34608 浏览

tsql - T-SQL 中的 TRY 和 RAISERROR

有一个小问题,想知道我是否正确使用了这些。

在我的 SQL 脚本中有

但是,这会遇到错误,然后继续执行脚本的其余部分。我错过了什么?谢谢!

0 投票
4 回答
10354 浏览

sql - 使用 RAISERROR 终止 SQL 语句

(SQL 2005) raiserror 是否可以终止存储过程。

例如,在一个大型系统中,我们有一个不希望输入到特定列中的值。如果您编写,则在更新触发器中:

如果存在 (select * from inserted where testcol = 7) begin raiseerror('My Custom Error', 16, 1) end

更新信息仍然适用。但是如果你跑

如果存在(从插入的地方选择 * testcol = 7)开始选择 1/0 结束

抛出一个除以 0 的错误,实际上终止了更新。有什么办法可以通过 raiseerror 来做到这一点,以便我可以返回自定义错误消息?

0 投票
3 回答
2956 浏览

c# - 过程中的 Raiserror (SQL Server 2005) 未在客户端的更新过程中捕获 (c#)

我正在使用带有 RAISERROR 的存储过程。SP 引发的错误不会被 c#.Net 中的 try catch 语句捕获。我使用 SqlDataSource 进行 SQL 连接和 SqlDataSource_Updating 事件来更新数据。

SQL 代码:

c#代码:

SQL 数据源:

问候 Geetha

0 投票
2 回答
1600 浏览

sql - 从 cfstoredproc 访问 RAISEERROR 消息

我有一个 SQL 存储过程,在某些情况下,如果失败,它会返回 -1 的结果,但也会通过 RAISERROR 命令返回一条消息,例如:

我正在使用 cfstoredproc 通过coldfusion 访问它,例如:

但是返回的结构只包含一个 ExecutionTime 和 StatusCode 键。有什么方法可以访问已返回的错误消息。例如向用户显示。

谢谢,

汤姆

ps 我会用“cfstoredproc”标记,但我不能创建新标记。

0 投票
1 回答
1147 浏览

sql-server - VB 中的 sql raiseerror error.number 错误

我编写了一个 T-SQL 查询,其中包括对有效 EmployeeNo 的测试。如果 EmployeeNo 无效,我会执行以下操作:

回到VB.Net,我测试了sql异常,发现当Employee No无效时,error.number不是我期望的5005,而是2732。

对此有何解释?

谢谢你。

0 投票
1 回答
18781 浏览

sql-server-2005 - T-SQL - 返回自定义错误消息并结束查询

我有一个冗长的存储过程,我想在其中执行以下操作:

基本上我希望检查我的变量是否为NULL,如果是,则向我的 .NET Web 应用程序返回一条错误消息,并在该阶段停止运行查询。我怎样才能做到这一点?