问题标签 [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 投票
0 回答
84 浏览

ruby - 重构代码但输出不同

我试图通过这样做来重构这个代码库:

但我得到一个错误,我认为这是因为我得到了不同的输出状态。我究竟做错了什么?

还有我怎么能通过使用 raise 错误来修复它?

谢谢你

0 投票
1 回答
633 浏览

sql - Try-Catch 错误消息外键约束

我正在尝试编写一个查询而不是错误:

INSERT 语句与 FOREIGN KEY 约束冲突...`

我可以有自己的错误。就像是:

<值> 在 <table_name> 上不存在

我做了以下触发器作为测试:

我该如何处理这个错误?谢谢你。

0 投票
2 回答
420 浏览

sql-server-2008-r2 - 从 SQL Server 2008r2 迁移到 SQL Sever 2012

SQL Server 2012 不支持 RAISEERROR

如何更改语法以使其支持 sql server 2012。任何替代方案请帮助。

0 投票
1 回答
22587 浏览

sql-server - 触发 RAISERROR 和 ELSE 案例问题

我正在尝试编写一些代码,这些代码包含两个单独的列,一个月和一年。从那里我希望它查看输入的这些数字是否已经通过。如果它们已经通过,则导致错误通过并停止事务。否则,我希望它继续并在表中插入新信息。我知道我快要让它工作了,但我似乎无法触发 RAISERROR。我确信这与我在这方面很新的事实有关,我错过了一些小细节。

目前,我将两个月作为变量,并制作第三个变量以将其他两个变量转换为适当的日期时间格式。然后我使用 datediff 函数尝试看看它是否已经通过了。虽然无济于事。即使卡片日期很旧,我也会继续使用插入功能。

0 投票
1 回答
2875 浏览

sql-server - 如果满足条件,SQL 立即退出并从“Instead Of”触发器回滚

我在一个数据库中有一个表,它引用了另一个数据库中表的 ID。我已经设置了代替插入/更新触发器,以防止插入另一个表中不存在的 ID。我希望这些触发器在发现不存在的 ID 时中止事务,否则继续事务。

这是我尝试过的:

此后我发现 RAISERROR 不会中止事务,即使 SET XACT_ABORT ON,并且在引发错误后仍会发生插入(或更新)。

我知道我可以将每个条件包装在 IF/ELSE IF 语句中,并在 ELSE 上调用插入,但我只是想知道是否有一种方法可以立即退出并回滚整个事务。

0 投票
1 回答
82 浏览

sql-server - SQL Server --- 使用 raiserror 没有状态意外

我想在我的 SQL-Server 代码中使用RAISERROR,但我注意到某些状态代码与内置 SQL 错误状态有中断......

例如状态码“1”用于“按零错误划分”,我不想再使用它了……现在我想看看哪些状态码可以安全使用而不会被中断?

0 投票
0 回答
266 浏览

c# - RAISERROR 在 SQL2014 中强制 msg_id > 50000,但遗留代码的 msg_ids 低于 50000

在我工作的地方,我们将用 SQL 2014 替换 SQL 2005 和 2008。

我们发现了一个大问题。该RAISERROR功能,不接受cod error < 50000

我们的许多应用程序在这种情况下使用 cod erro,代码相同,但 msg 不同。

我认为为了解决它,我需要用 CLR(C# 程序集)覆盖 RAISERROR。这可能吗?

另一个问题,我们需要在 sql 2005 和 2008 中进行此更新,然后再对新服务器进行此更改。我知道现在已经抛出,但不能在 sql 2008 中工作。

消息 50000,级别 16,状态 1,第 19 行遇到除以零错误。”

鳕鱼。错误 =“消息 50000

0 投票
1 回答
767 浏览

sql-server - 调用存储过程中的触发器未出现 RaiseError

我们有一个旧产品,从最初在 SQL Server 2000 中构建,多年来进展缓慢,问题与 SQL 如何从 RaiseError 调用中冒泡错误有关。

例如,我在一个表上有一个触发器,它会引发类似于以下的错误:

这在调用过程中具有所需的效果,即 if 语句具有以下值@@Error

但父调用应用程序看到的错误是:

大于 18 的错误严重级别只能由 sysadmin 角色的成员使用 WITH LOG 选项指定

这是因为触发器中的错误级别是44444,如果我添加

到触发器代码,Raiserror然后这将关闭连接(我们不想要)。如果我在触发器中将错误级别降低到 16,那么

行没有命中,因为@@Error设置为零。

除了使用

围绕父过程中的更新语句,是否有任何其他方法可以将@@Error值冒泡到执行更新的过程中,以便过程代码(更新语句和以下 if @@Error != 0)可以保持不变?如果不是,那么这对我的应用程序来说是一个巨大的变化,因为我需要更改受影响表正在更新的所有位置以及所有触发器。

0 投票
2 回答
539 浏览

sql-server - MSSQL-Raiserror 将在正确的时间显示错误但不会停止插入

我目前正在 MSSQL 中构建一个存储过程,以将信用卡插入我的数据库。

我检查一下 CC 是否是语句[0-9]中的所有数字,以及当它不是所有数字时。IFRAISERROR[0-9]

问题是它RAISERROR正在捕获错误并在网页上显示错误消息,但它仍然会将错误数据插入我的表中。

有什么想法吗?

这是我的代码:

0 投票
1 回答
376 浏览

sql-server - 不可提交事务防止在嵌套事务中记录错误

据此您可以在 catch 块中有一个状态,除非您先回滚,否则您无法执行任何写操作。

当您尝试处理嵌套事务并进行错误记录时,这是一个问题。在下面的示例中,嵌套过程中的异常丢失并且没有记录任何内容。

记录的单个错误只是不可提交的事务异常。有没有办法在 TRY..CATCH 中处理嵌套事务,并且仍然记录实际发生的错误?