0
我正在嘗試編寫一個存儲過程,將新用戶(NonMembers表)的詳細信息寫入數據庫,然後在該代碼的下一部分中使用該用戶的自動生成的ID將該用戶註冊給競爭對手(註冊表)。我這樣做的嘗試如下,但顯然我的SQL技能距離他們需要的地方很遠?如何編寫需要創建id的存儲過程,然後在相同的過程中使用它?
所有幫助將不勝感激。
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
RDBMS是什麼?我猜sql server? – twoleggedhorse
我覺得'觸發器'是這裏使用的最佳選擇。 –
沒辦法!只需要@@身份或更好,但scope_identity()。爲此,遠離觸發器。 – twoleggedhorse