我有一些 SQL:
BEGIN TRY
DECLARE @RowsInserted int;
SET @RowsInserted = @@ROWCOUNT;
SELECT @RowsInserted+'test' as [SUCCESS];
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS [ERROR]
END CATCH
令我惊讶的是,这实际上产生了两个批次(数据集):
GO
由于工作方式,我不能用来拆分批次TRY...CATCH
。那么这是否意味着如果发现一些错误,总会有一些虚拟结果集?
我真正想做的是扔掉 SUCCESS 批次(或其他类似的假批次)。否则,我必须浏览一些垃圾批次才能在 catch 语句中找到错误报告批次,这似乎令人困惑。