从批处理SQL命令(SQL Server)检索“输出消息”

我正在针对SQL Server在一个批处理中执行几个离散查询。 例如:

 update tableX set colA ='freedom';

从客户中选择lastName;

插入tableY(a,b,c)值(x,y,z);

现在,我想在DataSet中捕获结果(来自select语句),这很容易做到……但是我如何从该命令捕获“meta”响应,类似于Query Analyzer / SQL Mgt Studio的方式当它显示“消息”选项卡和diplays类似于:

 (1排受影响)
 (2行更新)

研究SQL Connection事件。 我认为这就是你所追求的: http : //msdn.microsoft.com/en-us/library/a0hee08w.aspx

我的建议是使用@@ rowcount变量。 通常,当我执行这些命令时,如果我想捕获潜在错误和受影响的行,我会这样做

declare @rowsAffected int, @error int select * from sometable select @rowsAffected = @@rowcount, @error = @@error if @@error <> 0 goto errorCleanup 

Nick建议使用@@ROWCOUNT是正确的 – 实际上,作为例程,我总是使用SET NOCOUNT ON ,它具有(小)性能优势 – 但更重要的是,这个细节是一个实现细节 – 所以你的代码不应该关心…

如果要返回值(例如更新的行数),请使用以下任何一项:

  • 返回值
  • 输出参数
  • SELECT语句

最后一个开销最大