【问题标题】:SQL RAISERROR under CASECASE下的SQL RAISERROR
【发布时间】:2016-08-03 14:10:41
【问题描述】:

我正在尝试在查询中使用 RAISERROR,但无法正常工作。毫无疑问,我试图以完全错误的方式做到这一点。

例如,在下面的代码中,如果 DestType 字段为空白或 NULL,我希望它终止查询。

SELECT TOP 1
    DocEntry,
    DocNum,
    CAST(DocDate AS DATE) AS [DocDate],
    CAST(DocDueDate AS date) AS [ShipDate],
    Comments,
    DestType
FROM ....

我尝试将它放入 CASE WHEN IN 类型的东西中,但没有奏效。

非常感谢!

【问题讨论】:

  • CASE 旨在返回一个值,而不是用于控制流量。将值存储在变量中并在选择后使用 IF 进行测试。

标签: sql error-handling sql-server-2016 raiserror


【解决方案1】:

RAISERROR 是一个不能内联的语句。

使用 SQL-Server 2016(已标记),您可以使用

BEGIN TRY
    Do Something here
END TRY
BEGIN CATCH
    RAISERROR ...parameters...
END CATCH

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2010-11-17
    • 2017-02-08
    • 1970-01-01
    相关资源
    最近更新 更多