建了一个临时表:
select top 10 userID into #temp from user order by newid()
在另外一个表messages中,有user1,user2, user3,user4,user5,user6,...user10
请问如何把#temp中的10个userID分别插入到messages?
--test
--只有5列,自己可以扩展
create table #tb (id int)
insert into #tb select 3
insert into #tb select 4
insert into #tb select 5
insert into #tb select 6
insert into #tb select 7
select id,identity(int,1,1) i into #tmp from #tb
select *from #tmp
create table Message (id1 int,id2 int,id3 int,id4 int,id5 int)
declare @id int
declare @str varchar(1000)
select @str=''
declare @t int
select @t=1
while @t<=5
begin
select @id=id from #tmp where i=@t
select @str=@str+','+cast(@id as varchar(5))
select @t=@t+1
end
select @str=substring(@str,2,len(@str)-1)
print @str
exec('insert into Message select '+@str)
select *from Message
drop table #tmp
drop table #tb
select top 10 userID into #temp from user order by newid()
在另外一个表messages中,有user1,user2, user3,user4,user5,user6,...user10
请问如何把#temp中的10个userID分别插入到messages?
--test
--只有5列,自己可以扩展
create table #tb (id int)
insert into #tb select 3
insert into #tb select 4
insert into #tb select 5
insert into #tb select 6
insert into #tb select 7
select id,identity(int,1,1) i into #tmp from #tb
select *from #tmp
create table Message (id1 int,id2 int,id3 int,id4 int,id5 int)
declare @id int
declare @str varchar(1000)
select @str=''
declare @t int
select @t=1
while @t<=5
begin
select @id=id from #tmp where i=@t
select @str=@str+','+cast(@id as varchar(5))
select @t=@t+1
end
select @str=substring(@str,2,len(@str)-1)
print @str
exec('insert into Message select '+@str)
select *from Message
drop table #tmp
drop table #tb