Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当前标识错误-列名无效_Sql_Sql Server_Stored Procedures - Fatal编程技术网

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)。在大多数情况下,我不认为这是个好主意。。。。