Sql 获取下一个最新创建的ID

Sql 获取下一个最新创建的ID,sql,stored-procedures,Sql,Stored Procedures,我正在处理一个存储过程,请看这解释了我想要什么 我创建了一个存储过程,将电影添加到数据库中,并从内部运行单独的存储过程,例如为电影创建演员阵容,并向其中添加流派(存储在单独的表中) 运行存储过程“NewMovie”时,会将一个新的电影添加到数据库中,该电影的ID将用于添加电影后运行的另外两个存储过程。问题是,例如,在创建演员阵容之后,@@IDENTITY指的是CastID,但在此之后,我需要再次使用电影ID 我是否可以通过某种方式获得下一个最新创建的ID,或者如何实现我想要的 到目前为止,如果有

我正在处理一个存储过程,请看这解释了我想要什么

我创建了一个存储过程,将电影添加到数据库中,并从内部运行单独的存储过程,例如为电影创建演员阵容,并向其中添加流派(存储在单独的表中)

运行存储过程“NewMovie”时,会将一个新的电影添加到数据库中,该电影的ID将用于添加电影后运行的另外两个存储过程。问题是,例如,在创建演员阵容之后,@@IDENTITY指的是CastID,但在此之后,我需要再次使用电影ID

我是否可以通过某种方式获得下一个最新创建的ID,或者如何实现我想要的

到目前为止,如果有人有时间查看,就可以找到代码


提前谢谢

出于好奇,您在
usp\u NewMovie
中已经有@MovieID了-为什么不把它作为
usp\u addgrove
usp\u AddMovieRole
的参数呢

另外,您最好使用
SCOPE\u IDENTITY()
而不是
@@IDENTITY


我在这里对您的代码进行了一些更新:

Next-latest created
phrase make nosense@zerkms对不起,我的英语不是最好的。你对新标题有什么建议吗?但我不是说最新的id,我是说最新id之前的id;)我猜您在存储过程中引用了“@MovieID=@@IDENTITY”?这是我的代码中的一个错误(不允许这样做)。:/您需要一个
选择
设置
。试试看
SELECT@MovieID=SCOPE\u IDENTITY()
Great,它就像一个符咒!我是否应该在代码中的所有位置将@IDENTITY更改为SCOPE_IDENTITY()?我建议这样做。如果您查看我答案中的链接,它会提到以下内容:
换句话说,它[SCOPE_IDENTITY()]将返回您显式创建的最后一个标识值,而不是由触发器或用户定义函数创建的任何标识。
太好了。非常感谢您的回答,非常感谢。