Получение следующего последнего созданного идентификатора - PullRequest
0 голосов
/ 08 марта 2012

Я работаю над хранимой процедурой, см. мой последний вопрос , который объясняет, что я хочу.

Я создал sproc, который добавляет фильм в базу данных, и запускает отдельные sprocs изнутри, чтобы создать, например, каст для фильма и добавляет к нему жанр (сохраненный в отдельной таблице).

При запуске sproc "NewMovie" новый фильм добавляется в базу данных, и идентификатор этого фильма используется в двух других sprocs, которые я запускаю после добавления фильма. Проблема в том, что после того, как, например, создан актерский состав, @@ IDENTITY ссылается на CastID, но после этого мне нужно снова использовать идентификатор фильма.

Это какой-то способ, которым я могу получить следующий последний созданный ID, или как я могу выполнить то, что я хочу?

Код пока можно найти здесь , если у кого-то есть время его просмотреть.

Заранее спасибо!

1 Ответ

1 голос
/ 08 марта 2012

Из любопытства, у вас уже есть @MovieID в usp_NewMovie - почему бы просто не использовать его в качестве параметра для usp_AddGenre и usp_AddMovieRole?

Также вам может быть лучше использовать SCOPE_IDENTITY()вместо @@IDENTITY http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/

я сделал несколько обновлений для вашего кода здесь: http://pastebin.com/rhhrGsuB

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