2009-05-06 2 views
4

В моей базе данных есть родительская таблица с идентификатором идентификатора первичного ключа с автоматическим добавлением и обычный столбец «TIMESTAMP». У меня есть дочерние таблицы с внешним ключом, которые относятся к столбцу «ID» родителя.SQL Server: извлечение автоинкрементного идентификатора внутри хранимой процедуры?

Я хочу написать хранимую процедуру, которая вставляет новый столбец в родительскую и дочернюю базы данных. Как бы я установил столбец «ID» ребенка, чтобы он соответствовал новому столбцу «идентификатор» с автоматическим увеличением? Требуется ли это отдельное:

SELECT TOP 1 * FROM PARENT_TABLE 

Или есть другой способ?

+0

Если вы в конечном итоге используете SCOPE_IDENTITY, убедитесь, что вы прочитали примечания в документации (http://msdn.microsoft.com/en-us/library/ms190315(SQL.90).aspx); особенно если у вас есть триггер на таблице, в которую вы вставляете. –

ответ

8

Вы можете получить его из SCOPE_IDENITY(). Например:

declare @myid int 
INSERT INTO table (field) VALUES ('value') 
SELECT @myid = SCOPE_IDENTITY() 
Смежные вопросы