Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Автоинкременирование  [new]
AngeIa
Member

Откуда:
Сообщений: 1
Всем привет.
У мебя две таблицы TABLE1 и TABLE2. В TABLE1 есть первичный автоинкременированный ключ ID. Нужно вставить 2 записи в эти таблицы, так чтобы в TABLE2 в поле TABLE1_ID содержалось значение ID первой записи из TABLE1. Как это сделать оптимальнее?
Первое что приходит в голову, это сначало вставить первую запись в TABLE1, затем прочитать ее, узнать ее ID, и вставить вторую запись в TABLE2, указав в поле TABLE1_ID то значение ID, которое получила из TABLE1. Но это долго, и, если не ошибаюсь, целых 3 транзакции. Можно ли это все сделать одним запросом?
Заранее благодарю за ответ.
16 ноя 09, 22:00    [7936561]     Ответить | Цитировать Сообщить модератору
 Re: Автоинкременирование  [new]
iljy
Member

Откуда:
Сообщений: 8711
AngeIa,

declare @t1 table (id int identity, val float)
declare @t2 table (id int identity, t1_id int)

insert into @t1(val)
output inserted.id into @t2(t1_id)
select 3.5 union all select 4.6


select * from @t1
select * from @t2
16 ноя 09, 22:21    [7936611]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить