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