问题标签 [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.
ruby - 重构代码但输出不同
我试图通过这样做来重构这个代码库:
但我得到一个错误,我认为这是因为我得到了不同的输出状态。我究竟做错了什么?
还有我怎么能通过使用 raise 错误来修复它?
谢谢你
sql - Try-Catch 错误消息外键约束
我正在尝试编写一个查询而不是错误:
INSERT 语句与 FOREIGN KEY 约束冲突...`
我可以有自己的错误。就像是:
<值> 在 <table_name> 上不存在
我做了以下触发器作为测试:
我该如何处理这个错误?谢谢你。
sql-server-2008-r2 - 从 SQL Server 2008r2 迁移到 SQL Sever 2012
SQL Server 2012 不支持 RAISEERROR
如何更改语法以使其支持 sql server 2012。任何替代方案请帮助。
sql-server - 触发 RAISERROR 和 ELSE 案例问题
我正在尝试编写一些代码,这些代码包含两个单独的列,一个月和一年。从那里我希望它查看输入的这些数字是否已经通过。如果它们已经通过,则导致错误通过并停止事务。否则,我希望它继续并在表中插入新信息。我知道我快要让它工作了,但我似乎无法触发 RAISERROR。我确信这与我在这方面很新的事实有关,我错过了一些小细节。
目前,我将两个月作为变量,并制作第三个变量以将其他两个变量转换为适当的日期时间格式。然后我使用 datediff 函数尝试看看它是否已经通过了。虽然无济于事。即使卡片日期很旧,我也会继续使用插入功能。
sql-server - 如果满足条件,SQL 立即退出并从“Instead Of”触发器回滚
我在一个数据库中有一个表,它引用了另一个数据库中表的 ID。我已经设置了代替插入/更新触发器,以防止插入另一个表中不存在的 ID。我希望这些触发器在发现不存在的 ID 时中止事务,否则继续事务。
这是我尝试过的:
此后我发现 RAISERROR 不会中止事务,即使 SET XACT_ABORT ON,并且在引发错误后仍会发生插入(或更新)。
我知道我可以将每个条件包装在 IF/ELSE IF 语句中,并在 ELSE 上调用插入,但我只是想知道是否有一种方法可以立即退出并回滚整个事务。
sql-server - SQL Server --- 使用 raiserror 没有状态意外
我想在我的 SQL-Server 代码中使用RAISERROR,但我注意到某些状态代码与内置 SQL 错误状态有中断......
例如状态码“1”用于“按零错误划分”,我不想再使用它了……现在我想看看哪些状态码可以安全使用而不会被中断?
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
sql-server - 调用存储过程中的触发器未出现 RaiseError
我们有一个旧产品,从最初在 SQL Server 2000 中构建,多年来进展缓慢,问题与 SQL 如何从 RaiseError 调用中冒泡错误有关。
例如,我在一个表上有一个触发器,它会引发类似于以下的错误:
这在调用过程中具有所需的效果,即 if 语句具有以下值@@Error
:
但父调用应用程序看到的错误是:
大于 18 的错误严重级别只能由 sysadmin 角色的成员使用 WITH LOG 选项指定
这是因为触发器中的错误级别是44444,如果我添加
到触发器代码,Raiserror
然后这将关闭连接(我们不想要)。如果我在触发器中将错误级别降低到 16,那么
行没有命中,因为@@Error
设置为零。
除了使用
围绕父过程中的更新语句,是否有任何其他方法可以将@@Error
值冒泡到执行更新的过程中,以便过程代码(更新语句和以下 if @@Error != 0)可以保持不变?如果不是,那么这对我的应用程序来说是一个巨大的变化,因为我需要更改受影响表正在更新的所有位置以及所有触发器。
sql-server - MSSQL-Raiserror 将在正确的时间显示错误但不会停止插入
我目前正在 MSSQL 中构建一个存储过程,以将信用卡插入我的数据库。
我检查一下 CC 是否是语句[0-9]
中的所有数字,以及当它不是所有数字时。IF
RAISERROR
[0-9]
问题是它RAISERROR
正在捕获错误并在网页上显示错误消息,但它仍然会将错误数据插入我的表中。
有什么想法吗?
这是我的代码:
sql-server - 不可提交事务防止在嵌套事务中记录错误
据此,您可以在 catch 块中有一个状态,除非您先回滚,否则您无法执行任何写操作。
当您尝试处理嵌套事务并进行错误记录时,这是一个问题。在下面的示例中,嵌套过程中的异常丢失并且没有记录任何内容。
记录的单个错误只是不可提交的事务异常。有没有办法在 TRY..CATCH 中处理嵌套事务,并且仍然记录实际发生的错误?