Scope_Identity vs OUTPUT
От: Аноним  
Дата: 26.10.05 12:13
Оценка:
В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,

insert into table1 (Name) values ('Name 1')
select scope_identity()


или

insert into table1 (Name) output inserted.Id values ('Name 1')
Re: Scope_Identity vs OUTPUT
От: Merle Австрия http://rsdn.ru
Дата: 26.10.05 12:42
Оценка: 2 (1)
Здравствуйте, <Аноним>, Вы писали:

А>В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,

Однофигственно... Другое дело, что в случае добавления нескольких записей OUTPUT вернет ID всех этих записей, а SCOPE_IDENTITY() только последней... Однако воспользоваться этим будет довольно затруднительно, так как порядок возвращаемых значений не гарантируется.
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Мы уже победили, просто это еще не так заметно...
Re[2]: Scope_Identity vs OUTPUT
От: eugen1001  
Дата: 26.10.05 14:58
Оценка:
Здравствуйте, Merle, Вы писали:

M>Здравствуйте, <Аноним>, Вы писали:


А>>В новом сервере появилась такая возможность, как возвращать свежесозданные данные. Вот и возник вопрос. А что будет эффективнее,

M>Однофигственно... Другое дело, что в случае добавления нескольких записей OUTPUT вернет ID всех этих записей, а SCOPE_IDENTITY() только последней... Однако воспользоваться этим будет довольно затруднительно, так как порядок возвращаемых значений не гарантируется.

Ну в данной задаче это все равно, так как identity растет последовательно и нужно всего лишь отсортировать по полю, чтобы получить порядок вставки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.