Как вставить данные в две таблицы, в то время как одна зависит от первичного ключа другой - PullRequest
2 голосов
/ 07 июля 2011

Я не эксперт по SQL, просто знаю некоторые базовые основы, но мне нужно реорганизовать мой код LINQ в SPROC для лучшей производительности, и у меня есть такой сценарий. У меня есть две таблицы Темы и сообщения.

Пока я создаю тему, мне также нужно создать пост. Это отношение один ко многим (одна тема может иметь много сообщений). Но при создании потока я не знаю, какой будет идентификатор потока, потому что это автоматически сгенерированный идентификатор.

Я думал, что в облаке просто сначала создаю тему, а затем выбираю последнюю добавленную тему, но как я могу быть уверен, что это именно та тема, которую я хочу?

Ответы [ 3 ]

4 голосов
/ 07 июля 2011

Вы можете вызвать SCOPE_IDENTITY () после вашей первой INSERT. Он получит последнее сгенерированное значение Identity. Подробнее см. http://msdn.microsoft.com/en-us/library/ms190315.aspx.

4 голосов
/ 07 июля 2011
SELECT SCOPE_IDENTITY()

Прочитайте следующую статью @@ IDENTITY против SCOPE_IDENTITY () против IDENT_CURRENT - получить последнюю вставленную идентификацию записи для подробного объяснения.

0 голосов
/ 07 июля 2011

Почему вы не можете использовать триггер.Как только вы создадите тему в триггере вставки, вы можете создать запись сообщения.

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