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 回答