Как получить затронутые записи, используя ExecuteNonQuery, когда несколько операторов вставки используются в C # для SQL - PullRequest
1 голос
/ 19 января 2012

Я выполняю запрос вставки из 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 Ответ

4 голосов
/ 19 января 2012

Просто измените оператор 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...