2009-05-02 70 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是tblFoodMenus的主键这是自动递增

+1

您确定要这样做吗? 2位用户如何同时添加记录?怎么回滚(这将增加IDENT_CURRENT,但不插入一行)?什么时候表空或截断(IDENT_CURRENT将返回1)。在大多数情况下,我看不出这是个好主意.... – 2009-05-02 02:45:11

回答

3

表名称必须用引号

Where FoodMenuID = IDENT_CURRENT('tblFoodMenus') 
1

马克·布拉克特的评论是正确的金钱 - IDENT_CURRENT是不是安全得到您生成的是您感兴趣的特定身份。几乎总是希望在执行插入操作的代码中使用scope_identity(),然后在需要的地方将其传递。