SQL文

2009-05-02 11 views
0

最後に挿入されたテーブルの列を更新しようとしています。私はこのストアドプロシージャを作成しようとしました:SQL文

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

AS 

UPDATE tblFoodMenus set 
EventID = @EventId 

Where FoodMenuID = IDENT_CURRENT(tblFoodMenus) 

しかし、それは私にこのエラーを与えます:無効な列名tblFoodMenus。

IDENT_CURRENTを正しく使用していますか?

PS FoodMenuIDは自動

+1

本当にやり直してよろしいですか? 2人のユーザーが同時にレコードを追加するのはどうですか?ロールバック(IDENT_CURRENTはインクリメントされますが、行は挿入されません)ではどうですか?テーブルが空であるか、切り捨てられたとき(IDENT_CURRENTは1を返します)。ほとんどの場合、これは良いアイデアではありません.... –

答えて

3

テーブル名が引用符

にする必要がインクリメントされtblFoodMenusの主キーである
Where FoodMenuID = IDENT_CURRENT('tblFoodMenus') 
1

マーク・ブラケット・さんのコメントは右のお金である - IDENT_CURRENTを取得することは安全ではありませんほとんどの場合、挿入を行うコードにはscope_identity()を使用し、それが必要な場所に渡すことがほとんどです。