使用 try_catch 的查询如何使用 if else 语句执行,如下所示

Posted

技术标签:

【中文标题】使用 try_catch 的查询如何使用 if else 语句执行,如下所示【英文标题】:how query with try_catch executes with if else statements as show below 【发布时间】:2017-09-02 05:02:04 【问题描述】:
begin try 

    DECLARE @Message VARCHAR(200)  
    DECLARE @MaxUserCode INT

    BEGIN TRANSACTION ADM_UPD_SalesUserDetails   

            IF 1=0
            BEGIN      
                SET @Message = 'fail'
                RAISERROR(@Message,16,1)
            END 

    insert into test values(1,'pass')
    commit TRANSACTION ADM_UPD_SalesUserDetails  

end try

begin catch

    IF @@TRANCOUNT > 0 
      ROLLBACK TRANSACTION ADM_UPD_SalesUserDetails 

    if @Message='fail'
    select 'insert'
    else 
    select 'ok' 

end catch

【问题讨论】:

【参考方案1】:

在上述查询中,IF 条件返回 false (1=0),并将值插入到 TEST 表中。 catch 块中的脚本不会被执行。

注意:只有在 TRY 块中的语句发生错误时才会执行 CATCH 语句。

【讨论】:

感谢您的解释

以上是关于使用 try_catch 的查询如何使用 if else 语句执行,如下所示的主要内容,如果未能解决你的问题,请参考以下文章

sql tsql__try_catch.sql

在 MySQL SELECT 查询中使用 IF 语句

如何进行 Hive SQL IF/ELSE 查询?

如何在 Oracle 的更新查询中使用 if 语句

如何查询数据表

基于邮政编码的Excel查询比利时各省