问题标签 [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.
c# - 在 C# 中结合 SQL `raiserror` 和 `select`
我想知道是否有一种方法可以同时使用 SQLraiserror
并在 C# 中检索选定的结果。ExecuteReader()
在 C# 中发生时会抛出异常raiserror
,但我仍然想使用阅读器捕获返回的任何数据。
下面是一个简化的例子。如果这不可能,我将raiserror
用于一般情况和select
特定情况。
sql - 如何使用 RAISERROR 抛出消息并提交事务?
我需要使用 RAISERROR 来抛出一条消息(弹出消息)并提交该事务。有什么选择吗?
对于严重性 18,事务回滚。我已将严重性更改为 10 并尝试过
这但它提交事务但不显示消息。我在这里需要的是必须抛出消息并且必须提交事务
有什么建议吗?
sql-server - 存储过程中的异常流调用另一个存储过程
我有一个调用另一个存储过程的存储过程。SP2 有一个 try/transaction/catch/rollback/raiserror。如果 SP2 引发错误,它会通过 SP1 冒泡到调用者,还是我必须将对 SP2 的调用嵌套在 try/catch 中?如果是后者,我如何确保在提升/退出 SP1 时不会杀死来自 SP2 的错误的“堆栈跟踪”?
-- 这是否会导致 SP2 出现任何错误并退出 SP1?
——或者我需要这样做吗?
sql - 使用 RAISERROR 指示 ACCESS DENIED 错误
我有一个存储过程,它验证调用者是否被授权使用给定的参数调用这个存储过程。如果调用者未经授权,我想RAISERROR
使用 ACCESS DENIED 错误号。现在,它不能是错误号 10011(sys.messages 中的访问被拒绝),因为错误号必须大于 50000。我不想使用 sproc 添加相同的消息(英语和本地化文本)sp_addmessage
只是为了重新创建相同的 ACCESS DENIED 错误。这样做的正确方法是什么?
编辑:因为所需的 SQL 代码应该与 SQL Azure 兼容,所以我最终调用RAISERROR
时没有错误号,并在后面的代码中检查默认的 50,000 个错误代码(在 SQL Azure 中,目前不支持sp_addmessage
and sys.messages
)。
sql-server-2005 - 使用 RAISERROR 在 t-SQL 中引发特定错误
我有一个有INSTEAD OF INSERT
触发器的视图(在 SQL Server 2005 中)。当用户插入视图时,他们实际上是在对许多表进行插入和更新。该视图非常复杂,以至于它不能有索引,因此不幸的是不受约束。
该视图是从 C# 中插入的,使用的代码更改起来会有问题。此代码使用以下内容捕获主键和唯一键违规:
所以我的问题是:我可以RAISERROR
在触发器中使用来创建编号为 2627 或 2601 的异常吗?
sql-server - 如何设置 SQLException Number
我在设置时遇到问题SqlException.Number
在我的存储过程中,我提出了一个错误
我应该期望Error_Number()
应该是@number
,但我总是得到 18054
我的有什么问题RAISERROR
吗?
sql - 在 SQL Server 中创建错误消息时遇到问题
我的 中有以下代码stored procedure
,我知道它不起作用也不应该起作用,但我想说明我的意图:
谁能告诉我我应该做什么?或有关创建此类字符串的任何链接。
编辑:忘了说@Dates 都是datetime
,错误消息是它不能从日期时间转换为字符串
sql - 非常棘手的 ADO.Net 情况,不会引发错误,但应该
我有如下 ADO.Net 代码,它调用存储过程。在存储过程中,我首先通过 SELECT 查询获取结果集,RAISERROR
如果传递的 @companyId 参数值不存在,则在 SELECT 语句调用后调用。我已经多次使用 @companyId 的值对此代码运行单元测试,因此RAISEERROR
被调用,但我从未看到ExecuteReader
引发错误的调用。为什么会发生这种奇怪的违反直觉的事情?
存储过程代码如下所示
c# - c# asp.net:从 SQL 存储过程中捕获 raiserror() 消息
我正在尝试使用 C# 作为我选择的编程语言来了解 ASP.NET 4.0。我是一名优秀的 SQL 开发人员,因此计划在 SQL 中完成我的大部分业务逻辑。应用程序只会通过存储过程与数据库交互。
在 aspx 页面中,我有一个数据源,用于填充调用 sp 'season_get_byID' 的数据视图和带有多个参数的更新 'season_update',
aspx 源码显示
其中每个 asp:Parameter 映射到存储过程中的 @Param 参数 - 到目前为止一切都很好
存储过程在尝试进行更新之前会进行一些验证。如果验证失败,则会引发 RAISERROR(@errmsg,10,1)。
我无法解决的是文件后面的 aspx.cs 代码中的哪个位置,我会尝试捕获错误以及语法应该是什么:它是否应该在 after_update 事件处理程序中,如果是的话,它似乎不是其中的一部分e.异常。我知道这个例程中的一些验证可以使用验证类来完成,但这是操作环境而不是最终生产代码的学习练习,即我试图理解什么是可能的,而不是什么是“正确的”
存储过程的文本如下。
sql-server-2008 - 重新引发 SQL 错误 - SQL 错误正在丢失
我有一个 DataSnap 方法,可以在删除之前记录已删除的记录。如果删除失败,我会回滚事务,以便也不保留日志记录。失败的一个典型原因是正在删除的记录正在另一个表中使用。
我的 SQL 看起来与此类似:
这工作得很好。但是,错误消息被抑制,因此 DataSnap 服务器永远不会看到它。SQL 语法错误总是会出现错误消息,而其他插入/更新唯一性和外键违规总是会返回错误。我不明白为什么这段代码会抑制错误。DataSnap 代码很简单:
查询执行得很好,因此没有语法错误或绑定参数的问题。我只是从来没有看到外键违规错误。当我在 SQL Management Studio 中运行 SQL 时,总是看到错误...所以我尝试catch
按如下方式更改块:
在调试 DataSnap 服务器时,我仍然没有看到出现错误,因此客户端应用程序当然对错误一无所知。有谁知道为什么 DataSnap 服务器中没有出现“raiserror”和外键违规错误?
仅供参考 - 我使用的是 Delphi XE2 Enterprise 和 SQL Server 2008 R2,它们都在 Windows Server 2008 R2 上运行。