2013-10-15 5 views
2

У меня есть небольшой процесс, который работает на нескольких таблицах SQL. Таблицы были первоначально ориентированы на первичные ключи, но для повышения эффективности мы обновляем их до идентификатора BigInt.SQL Guid to Identity Первичный ключ, пакетный запрос

У меня есть пакетная вставка, которая добавляет элемент в таблицу первичного ключа, а затем несколько элементов в таблице внешних ключей. С помощью Guides это было легко, так как я создал Guid в коде и передал его для параметра.

Мне любопытно, что лучше всего подходит для столбца идентификации? Я знаю, что могу:

declare @id int 
insert into PrimaryKeyTable (...) Values (...) 
select @id = Scope_Identity() 

и получить первичный ключ.

Является наилучшим подходом для разбивки партий на два и передать параметр в код для вставок внешнего ключа? Или есть способ сделать все вставки в одном выражении SQL? Есть ли общее общественное мнение по этому вопросу или передовая практика? Благодарю за любое руководство.

ответ

1

Вы должны использовать OUTPUT

INSERT... 
OUTPUT INSERTED.ID 

Это позволяет сделать пакетную вставку, и он будет выплевывать дозируемые идентичность идентификаторы и все, что вы явно настроены для вывода

Смежные вопросы