Sql 当前标识错误-列名无效
我正在尝试更新表中上次插入的列。我尝试创建以下存储过程:Sql 当前标识错误-列名无效,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我正在尝试更新表中上次插入的列。我尝试创建以下存储过程: CREATE PROCEDURE [dbo].[msp_AssociateEvent] ( @EventId int ) AS UPDATE tblFoodMenus set EventID = @EventId Where FoodMenuID = IDENT_CURRENT(tblFoodMenus) 但它给了我一个错误: 列名称tblFoodMenus无效 我是否正确使用当前标识 p.S.FoodMenuID是自动
CREATE PROCEDURE [dbo].[msp_AssociateEvent]
(
@EventId int
)
AS
UPDATE tblFoodMenus set
EventID = @EventId
Where FoodMenuID = IDENT_CURRENT(tblFoodMenus)
但它给了我一个错误:
列名称tblFoodMenus无效
我是否正确使用当前标识
p.S.FoodMenuID是自动递增的tblFoodMenus的主键表名需要加引号
Where FoodMenuID = IDENT_CURRENT('tblFoodMenus')
表名需要加引号
Where FoodMenuID = IDENT_CURRENT('tblFoodMenus')
马克·布莱克特对货币的评论是正确的——当前的身份识别无法安全地为您生成您感兴趣的特定身份。您几乎总是希望在执行插入的代码中使用,然后在需要时将其传递到任何地方。Mark Brackett的评论是正确的,因为当前的身份无法安全地为您生成您感兴趣的特定身份。您几乎总是希望在执行插入的代码中使用,然后在需要时将其传递到任何地方。确实要这样做吗?两个用户同时添加记录怎么样?回滚(将增加当前标识,但不插入行)如何?当表为空或被截断时(IDENT_CURRENT将返回1)。在大多数情况下,我不认为这是个好主意……你确定要这样做吗?两个用户同时添加记录怎么样?回滚(将增加当前标识,但不插入行)如何?当表为空或被截断时(IDENT_CURRENT将返回1)。在大多数情况下,我不认为这是个好主意。。。。