我正在针对SQL Server在一个批处理中执行多个离散查询。例如:
update tableX set colA = 'freedom'; select lastName from customers; insert into tableY (a,b,c) values (x,y,z);
现在,我想在DataSet中捕获结果(来自select语句),这很容易做到......但是我如何从该命令捕获“meta”响应,类似于Query Analyzer / SQL的方式当Mgt Studio显示“消息”选项卡并显示类似于:
的内容时,它会执行(1 Row affected) (2 Rows Updated)
答案 0 :(得分:5)
查看SQL连接事件。我认为这就是你所追求的: http://msdn.microsoft.com/en-us/library/a0hee08w.aspx
答案 1 :(得分:3)
我的建议是使用@@ rowcount变量。通常,当我执行这些命令时,如果我想捕获潜在错误和受影响的行,我会这样做
declare @rowsAffected int, @error int
select * from sometable
select @rowsAffected = @@rowcount, @error = @@error
if @@error <> 0 goto errorCleanup
答案 2 :(得分:1)
Nick建议@@ROWCOUNT
是正确的 - 事实上,作为例行事项,我总是使用SET NOCOUNT ON
,它具有(小)性能优势 - 但更重要的是,这个细节是一个实现细节 - 所以你的代码不应该关心...
如果要返回值(例如更新的行数),请使用以下任意一个:
最后一个开销最多