gpt4 book ai didi

SQL Server 从两个表插入更新

转载 作者:行者123 更新时间:2023-12-02 21:54:41 25 4
gpt4 key购买 nike

我有 2 个表 Winner 和 Player ,包含标准信息(姓氏、名字、ID ...)以及两个 bool 列 Validity 和 WinnerState(默认为 0)。

我想要做的是创建一个 SQL Server 过程,该过程将从玩家表中随机选择一条记录,然后将其插入到获胜者表中,并同时更新玩家表中所选记录的 WinnerState 列。

获胜者表包含玩家的外键,以跟踪所选玩家。

我已经尝试过一个过程,但它会更新所有玩家表的此列:

create procedure selectUpdate
As
insert into Winner (Fname,Lname,Adress,City,Tel,Player_ID) from
select TOP 1 (Fname,Lname,Adress,City,Tel,ID) from Player order by NEWID()
Update Player
SET WinnerState=1

如何才能让它只更新随机选择的记录?谢谢!

最佳答案

您可以在一条语句中完成所有操作:

create procedure selectUpdate
as
begin
set nocount on

;with p as (
select top 1 Fname,Lname,Adress,City,Tel,ID,WinnerState
from Player
where WinnerState = 0 -- this is necessary I assume
order by checksum(NEWID())
)
update p
set WinnerState = 1
output
inserted.Fname,
inserted.Lname,
inserted.Adress,
inserted.City,
inserted.Tel,
inserted.ID into Winner (Fname,Lname,Adress,City,Tel,Player_ID)
end

关于SQL Server 从两个表插入更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17957347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com