sql中,如何把一个表的一列更新到另一个表

来源:百度知道 编辑:UC知道 时间:2024/06/18 07:15:19
我现在有两张表,basuser(userid(自动编号,已有100000条数据),username),qusmain(memo,userid(对应basuser的userid,已有300000条数据,有大半数据的userid=0))
我想把basuser中的userid打乱更新到qusmain的userid=0中.
刚才用游标,慢死了,希望高手帮忙!

"我想把basuser中的userid打乱更新到qusmain的userid=0中"
--打乱是什么意思
那是不是basuser.userid可以在qusmain.userid出现N次呢

那就用随机数比较好 --随机到表basuser.userid就更新到qusmain.userid=0的第一条

也可以这样
create proc proc_UpdateQusmainData
as
declare @randNum int --随机数
declare @randNumVal int --取得随机数
declare @NumAll int --记录执行次数
declare @Num int --执行记录
set @Num=1
select top 1 userid from qusmain where userid=0
while (@Num <= @NumAll) begin
set @randNum=ceiling(rand()*100000)--1-100000的数字
if not exists(select 1 from basuser where userid=@randNum) begin
set @randNumVal=ceiling(rand()*10000)
end else begin
set @randNumVal=@randNum
end
update qusmain set userid=@randNumVal where userid in
(select top 1 userid from qusmain where userid=0)

set @Num=@Num+1
end
Go

--游标方式 你已经OK了....

还打乱?我发现你真无聊啊~
又不是生成随机数。