获取下一个最新创建的ID

时间:2012-03-07 20:28:22

标签: sql stored-procedures

我正在处理存储过程,请参阅my last question解释我想要的内容。

我创建了一个将电影添加到数据库的sproc,并从内部运行单独的sprocs以创建例如电影的强制转换并为其添加一个类型(存储在单独的表中)。

运行sproc" NewMovie"将新电影添加到数据库中,并在添加电影后运行的另外两个sproc中使用该电影的ID。问题是,例如在创建了强制转换后,@@ IDENTITY引用了CastID,但我需要在此之后再次使用影片ID。

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

如果有人有时间浏览,可以找到目前为止的代码here

提前致谢!

1 个答案:

答案 0 :(得分:1)

出于好奇,您已在usp_NewMovie中拥有@MovieID - 为什么不将其用作usp_AddGenreusp_AddMovieRole的参数?

您最好使用SCOPE_IDENTITY()代替@@IDENTITY http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/

我在这里对您的代码进行了一些更新:http://pastebin.com/rhhrGsuB