gpt4 book ai didi

SQL Server 从两个表中插入更新

转载 作者:行者123 更新时间:2023-12-02 04:56:00 25 4
gpt4 key购买 nike

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

我想做的是创建一个 SQL Server 程序,它会从 Players 表中随机选择一条记录,然后将其插入 Winner 表,同时更新在 player 表中所选记录的 WinnerState 列。

Winner 表包含 Player 的外键,以跟踪所选玩家。

我已经尝试过一种方法,但它会为所有玩家表更新此列:

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