Как получить значение ключа новой записи в таблице?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Как получить значение ключа новой записи в таблице?

Сообщение Roman Koff » 04.02.2009 (Ср) 16:21

Имеется таблица:

Код: Выделить всё
CREATE TABLE Pages (
   PageId int IDENTITY (1, 1) PRIMARY KEY,
   PageLogin varchar(50) NOT NULL,
) ON [PRIMARY]


Хранимой процедурой создаю новый элемент и получаю значение ключа нового элемента:

Код: Выделить всё
CREATE PROCEDURE Page_Create (@PageId int OUTPUT, @PageLogin varchar(50)) AS
   INSERT INTO dbo.Pages (PageLogin) VALUES (@PageLogin)
   SELECT @PageId = PageId FROM dbo.Pages WHERE (PageLogin = @PageLogin)
GO


Естественно, решение неправильное, т.к. если есть несколько записей с одинаковым логином, то вернется ключь первой (вернее последней записи).
Как правильно получить новый ключ?
Слава роботам! Убить всех человеков! Bite my shiny metal ass!

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Как получить значение ключа новой записи в таблице?

Сообщение trash » 04.02.2009 (Ср) 16:26

Если это MSSQL, то select @PageID = @@identity

Roman Koff
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 495
Зарегистрирован: 17.09.2008 (Ср) 9:22
Откуда: От туда

Re: Как получить значение ключа новой записи в таблице?

Сообщение Roman Koff » 04.02.2009 (Ср) 16:36

Спасибо, как раз только что сам нашел ответ ;)
Слава роботам! Убить всех человеков! Bite my shiny metal ass!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

    TopList