2009-05-02 4 views
0

Я пытаюсь обновить столбец в моей последней вставке. Я попытался создать эту хранимую процедуру:SQL Statement

CREATE PROCEDURE [dbo].[msp_AssociateEvent] 
(
    @EventId int 
) 

AS 

UPDATE tblFoodMenus set 
EventID = @EventId 

Where FoodMenuID = IDENT_CURRENT(tblFoodMenus) 

, но это дает мне эту ошибку: Недопустимое имя столбца tblFoodMenus.

Правильно ли я использую IDENT_CURRENT?

PS FoodMenuID является первичным ключом tblFoodMenus, который является автоматическое приращение

+1

Вы уверены, что хотите это сделать? Как насчет двух пользователей одновременно с добавлением записей? Как насчет откатов (которые будут увеличивать IDENT_CURRENT, но не вставлять строку)? Как насчет того, когда таблица пуста или усечена (IDENT_CURRENT вернет 1). Я не вижу, чтобы это было хорошей идеей в большинстве случаев ... –

ответ

3

Имя таблицы должно быть в кавычках

Where FoodMenuID = IDENT_CURRENT('tblFoodMenus') 
1
комментарий

Марк Бракетт является право на деньги - IDENT_CURRENT не безопасно, чтобы получить вам определенная идентификация, сгенерированная вами, вы заинтересованы. Почти всегда вы хотели бы использовать scope_identity() в коде, который вставляет, а затем передавать его там, где это необходимо.