В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,
insert into table1 (Name) values ('Name 1')
select scope_identity()
или
insert into table1 (Name) output inserted.Id values ('Name 1')
Здравствуйте, <Аноним>, Вы писали:
А>В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,
Однофигственно... Другое дело, что в случае добавления нескольких записей OUTPUT вернет ID всех этих записей, а SCOPE_IDENTITY() только последней... Однако воспользоваться этим будет довольно затруднительно, так как порядок возвращаемых значений не гарантируется.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Здравствуйте, Merle, Вы писали:
M>Здравствуйте, <Аноним>, Вы писали:
А>>В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,
M>Однофигственно... Другое дело, что в случае добавления нескольких записей OUTPUT вернет ID всех этих записей, а SCOPE_IDENTITY() только последней... Однако воспользоваться этим будет довольно затруднительно, так как порядок возвращаемых значений не гарантируется.
Ну в данной задаче это все равно, так как identity растет последовательно и нужно всего лишь отсортировать по полю, чтобы получить порядок вставки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>