Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 检查EXEC(';SELECT…';)是否将在不返回查询结果的情况下无错误地运行_Sql Server - Fatal编程技术网

Sql server 检查EXEC(';SELECT…';)是否将在不返回查询结果的情况下无错误地运行

Sql server 检查EXEC(';SELECT…';)是否将在不返回查询结果的情况下无错误地运行,sql-server,Sql Server,我想在字符串变量中动态生成查询(始终是SELECT语句),将其作为参数传递给EXEC(),然后: -如果EXEC()语句遇到错误,请继续我的自定义错误处理 -否则,请继续操作,而不实际选择“结果”窗格中的结果(我经常在存储过程中执行此操作,因此窗格很容易变得混乱) 我在打开和关闭NOEXEC时尝试了try/catch,希望看到“遇到零除法错误”,而只是看到“命令成功完成” 基本上,我希望NOEXEC能够减少混乱,但如果查询遇到错误,我希望处理它。NOEXEC只进行编译,不执行。分裂从未发生过 如

我想在字符串变量中动态生成查询(始终是SELECT语句),将其作为参数传递给EXEC(),然后:

-如果EXEC()语句遇到错误,请继续我的自定义错误处理

-否则,请继续操作,而不实际选择“结果”窗格中的结果(我经常在存储过程中执行此操作,因此窗格很容易变得混乱)

我在打开和关闭NOEXEC时尝试了try/catch,希望看到“遇到零除法错误”,而只是看到“命令成功完成”


基本上,我希望NOEXEC能够减少混乱,但如果查询遇到错误,我希望处理它。

NOEXEC只进行编译,不执行。分裂从未发生过

如果你想分裂,就这样做--

DECLARE @sql varchar(max)
SET @sql = 'SELECT 2 / 0;'

BEGIN TRY
    SET NOEXEC ON;
    EXEC(@sql)
    SET NOEXEC OFF;
END TRY
BEGIN CATCH
    PRINT('Zero division error encountered')
END CATCH
Declare @ans int

BEGIN TRY
    Set @ans = 2 / 0
END TRY
BEGIN CATCH
    PRINT('Zero division error encountered')
END CATCH