当在C#for SQL中使用多个insert语句时,如何使用ExecuteNonQuery获取受影响的记录

时间:2012-01-18 23:22:47

标签: c# sql sql-server-2008-r2

我正在使用以下命令从c#运行插入查询:

string affectedRows = myCommand.ExecuteNonQuery().ToString();

然而,我正在运行的查询做了两件事。它首先将内容插入到临时表中,然后将内容插入到实际表中。

例如:

declare @t table (a int)
insert into @t 
values(1)

insert into MyTable
select * from @t

由于它会进行两次插入,因此我的受影响者将为2。 问题是如何获得插入的最后结果,或者可能是数组/结果列表?

除以2对我没有帮助,因为可能存在多个查询等,并且它不会总是为2.上面只是一个例子。感谢

1 个答案:

答案 0 :(得分:4)

只需更改SET NOCOUNT语句即可查看真正重要的行:

示例:

set nocount off

declare @t table (a int)
insert into @t 
values(1)

set nocount on

declare @MyTable table (b int)

insert into @MyTable
select * from @t

请参阅SSMS中的“消息”选项卡。