2012-03-07 10 views
0

私はストアドプロシージャを使用しています。my last questionを参照してください。次回作成されたIDの取得

私は、ムービーをデータベースに追加し、別のsprocsを内部から実行してムービーのキャストを作成し、それにジャンルを追加します(別のテーブルに保存されています)。

sproc "NewMovie"を実行すると、新しいムービーがデータベースに追加され、そのムービーのIDは、ムービーが追加された後に実行する2つの他のsprocsで使用されます。問題は、たとえばキャストが作成されたあと、@@ IDENTITYがCastIDを参照していることですが、その後にムービーIDを使用する必要があります。

次回に作成されたIDを取得する方法はありますか、または私が望むものをどのように達成することができますか?

これまでのコードは、誰かがそれを調べる時間があれば、hereです。

ありがとうございます!

+0

を '次最新created'フレーズは意味 – zerkms

+0

@zerkmsを行うものではありません最高ではありません。新しいタイトルの提案はありますか? – holyredbeard

+0

「次へ」を削除するだけですか? – zerkms

答えて

1

@MovieIDはusp_NewMovieです。usp_AddGenreusp_AddMovieRoleのパラメータとして使用するのはなぜですか?

また、あなたは、私がここにあなたのコードにいくつかの更新をしたSCOPE_IDENTITY()代わりの@@IDENTITYhttp://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

+0

sprocの中で "@MovieID = @@ IDENTITY"を参照していると思いますか?それは私のコードのエラーでした(それはそのようにすることは許されません)。 :/ – holyredbeard

+0

その前に 'SELECT'または' SET'が必要です。 'SELECT @MovieID = SCOPE_IDENTITY()'を試してください。 – diaho

+0

魅力的な作品です。コード内のすべての場所で@@ IDENTITYをSCOPE_IDENTITY()に変更する必要がありますか? – holyredbeard

関連する問題