3

1つで2つの挿入を実行するストアドプロシージャを作成しました

最初のステップでは、挿入ごとに新しいエントリを作成します。

2番目のステップこのエントリから作成されたIDをキャッチします

3番目のステップ1つのテーブルから選択ごとに複数のエントリをコピーし、それらをIDを使用して同じテーブルに挿入します

Create PROCEDURE dbo.Rolle_Copie
    @Id as int,
    @newId as int = 0,
    @Name AS nvarchar(50)
AS
    INSERT INTO Rollen (RolleName) 
    VALUES (@Name)

    @newId = SCOPE_IDENTITY()

    INSERT INTO Berechtigung_Rolle (RefRolleId,RefBerechtigungId)
        SELECT   
           RefBerechtigungId, @newId 
        FROM     
           Berechtigung_Rolle 
        WHERE    
           RefRolleId = @Id

    RETURN

しかし、エラーが発生します

@newIdの横の構文が間違っています

誰かが私に何が悪いのか教えてもらえますか?

アドバイスをいただければ幸いです

4

1 に答える 1

7

使用することを忘れないでくださいSET

SET @newId = SCOPE_IDENTITY()
于 2013-01-23T14:08:46.060 に答える