sql - 如果条件通过,如何退出存储过程

标签 sql tsql sql-server-2012

当 if 条件满足时,我必须在中间停止我的存储过程。
我使用了 NOEXEC ON 它显示了所有上述结果,直到 NOEXEC ON STATEMENT。
但是我只需要 if 语句结果而没有上述结果是可能的。

DECLARE @var1  VARCHAR(MAX),
 @var2  VARCHAR(MAX),
 @var3  VARCHAR(MAX)

 SET @var1 = 'ASH'
 SET @var3 = 'ASHff'
 print @var3

IF @var1 <> ''
    BEGIN
    PRINT 'Information available'
    SET NOEXEC ON
    END 

    SET @var2 = 'DFGF'

    SET NOEXEC OFF 

当我运行它时,我得到了这个结果:
ASHff
Information available

但预期输出是:
Information available

是否可以?

最佳答案

根据您的评论,我相信这是您在 SP 中想要的步骤顺序。您可以使用 随时停止在 SP 上执行返回 .
我也不会使用 NOEXEC,因为根据您的要求,我们不需要。

DECLARE @var1  VARCHAR(MAX),
 @var2  VARCHAR(MAX),
 @var3  VARCHAR(MAX)

 SET @var1 = 'ASH'
 SET @var3 = 'ASHff'

IF @var1 <> ''
    BEGIN
    PRINT 'Information available'
    return;
    END 

 print @var3

    SET @var2 = 'DFGF'


----------

关于sql - 如果条件通过,如何退出存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47505405/

相关文章:

c# - 循环插入问题,重新加载页面加载?

sql - 是否可以在同一个查询中创建和使用窗口函数?

sql-server-2012 - 如何检查 SQL Server 的当前池大小

sql - 删除带有自引用外键的行

sql - 如何在SQL Server 2005中删除列的IDENTITY属性

sql-server - SQL Server 2008 中的枚举类型?

sql - 使用 SELECT * [ except columnA] FROM tableA 排除列?

sql - 使用 UTF-8 SQL Server 整理 SQL_Latin1_General_CP850_BIN2 时出错

java - 无法连接到MSSQL数据库2012

sql - 从数组中删除一个非唯一值