0

新しいユーザー (NonMembers テーブル) の詳細をデータベースに書き込み、コードの次の部分でそのユーザーの自動生成 ID を使用して、そのユーザーを競技会に登録するストアド プロシージャを作成しようとしています (登録テーブル)。これを行うための私の試みは次のとおりですが、明らかに私のSQLスキルは必要な場所から遠く離れていますか?

すべての助けをいただければ幸いです。

ALTER PROCEDURE [dbo].[RegisterNonMember]
    @CompetitionId INTEGER,
    @IsMember BIT,
    @FirstName  NVARCHAR(50),
    @Surname  NVARCHAR(50),
    @Handicap INTEGER,
    @Club NVARCHAR(50),
    @CountyId INTEGER,
    @CountryId INTEGER,
    @PlayersStartTime TIME

AS
BEGIN

DECLARE @NonMember TABLE
    (NonMemberId INTEGER,
    FirstName  NVARCHAR(50),
    Surname  NVARCHAR(50),
    Handicap INTEGER,
    Club NVARCHAR(50),
    CountyId INTEGER,
    CountryId INTEGER
) 
INSERT INTO [dbo].[NonMembers]
           (
           FirstName
           ,Surname
           ,[Handicap]
           ,[Club]
           ,CountyId
           ,CountryId       
)
     VALUES
           (@FirstName
           ,@Surname
           ,@Handicap
           ,@Club
           ,@CountyId
           ,@CountryId
           )

--UPDATE    @NonMember
--SET       [@NonMember].NonMemberId = [dbo].[NonMembers].[NonMemberId]
--FROM  [dbo].[NonMembers]
--JOIN  @NonMember ON [@NonMember].NonMemberId = [dbo].[NonMembers].[NonMemberId]
--WHERE @NonMember.FirstName = [dbo].[NonMembers].[FirstName]
--AND       @NonMember.Surname = [dbo].[NonMembers].[Surname]
--AND       @NonMember.Handicap = [dbo].[NonMembers].[Handicap]
--AND       @NonMember.Club = [dbo].[NonMembers].[Club]

DECLARE @Registration TABLE
    (CompetitionId INTEGER,
    IsMember BIT,
    NonMemberId INTEGER,
    PlayersStartTime TIME
    )

INSERT INTO [dbo].[Registration]
            (
            [CompetitionId]
            ,[IsMember]
            ,[NonMemberId]
            ,[PlayersStartTime])
    VALUES
            (@CompetitionId
            ,@IsMember
            ,@NonMemberId
            ,@PlayersStartTime)  
END
4

1 に答える 1

3

INSERT追加後:

DECLARE @UserID INT
SELECT @UserID = SCOPE_IDENTITY()
于 2013-01-16T17:15:20.980 に答える