好像不是楼主说的那么难,有点危言耸听了啦 如果我没有理解失误的话:create table backuser(userinfo varchar(8000)) --如果字段不够存取,可用textinsert into backuser select top 1000 ( [username] + '|' + [Phone] + '|' + [IDX] + '|' + [PostNumber] + '|' + [Email]) as userinfo from user--这里保证各个字段是字符,不是请转化delete from [user] where username in (select select top 1000 [username] from user) --假如username是key值,不是你要用临时表对每个列个序号
这几个问题不是很难吧, MorningTea妹妹的方法就可以了
1:Create table backuser(userinfo varchar(2000)) 2: declare @s varchar(8000) set @s='' select @s=@s+'||'+T from (select convert(varchar(20),[username])+ convert(varchar(20),[Phone])+convert(varchar(20),[IDX])+convert(varchar(20),[PostNumber])+convert(varchar(20),[Email]) T from user ) Cinsert into userinfo select @s 3:truncate table userinfo
1. create table backuser(userinfo varchar(1000)) 2. 3.4.写在一起 --做个循环实现 declare @username varchar(100) declare @a int set @a=0 set @username='' select @a=count(1) from [userid] set @a=(@a/1000)+1 while @a>=0 begin truncate table [userinfo] insert [userinfo] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username] select @username=max([username]) from [userinfo] select * from [userinfo] --这里可以增加你的处理 set @a=@a-1 end go
--表名写错了,不过也是受楼主的影响declare @username varchar(100) declare @a int set @a=0 set @username='' select @a=count(1) from [userid] set @a=(@a/1000)+1 while @a>=0 begin truncate table [backuser] insert [backuser] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username] select @username=max([username]) from [backuser] select * from [backuser] --这里可以增加你的处理 set @a=@a-1 end go
--还是有点问题,再改一下 declare @username varchar(100) declare @a int set @a=0 set @username='' select @a=count(1) from [userid] set @a=(@a/1000)+1 while @a>=0 begin truncate table [backuser] insert [backuser] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username] select @username=max(left([username],charindex('|',[username])-1)) from [backuser] select * from [backuser] --这里可以增加你的处理 set @a=@a-1 end go
如果我没有理解失误的话:create table backuser(userinfo varchar(8000))
--如果字段不够存取,可用textinsert into backuser
select top 1000 ( [username] + '|' + [Phone] + '|' + [IDX] + '|' + [PostNumber] + '|' + [Email]) as userinfo
from user--这里保证各个字段是字符,不是请转化delete from [user]
where username in (select select top 1000 [username] from user)
--假如username是key值,不是你要用临时表对每个列个序号
2:
declare @s varchar(8000)
set @s=''
select @s=@s+'||'+T from
(select convert(varchar(20),[username])+
convert(varchar(20),[Phone])+convert(varchar(20),[IDX])+convert(varchar(20),[PostNumber])+convert(varchar(20),[Email]) T from user ) Cinsert into userinfo select @s 3:truncate table userinfo
2.
3.4.写在一起
--做个循环实现
declare @username varchar(100)
declare @a int
set @a=0
set @username=''
select @a=count(1) from [userid]
set @a=(@a/1000)+1
while @a>=0 begin
truncate table [userinfo]
insert [userinfo] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username]
select @username=max([username]) from [userinfo]
select * from [userinfo] --这里可以增加你的处理
set @a=@a-1
end
go
declare @a int
set @a=0
set @username=''
select @a=count(1) from [userid]
set @a=(@a/1000)+1
while @a>=0 begin
truncate table [backuser]
insert [backuser] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username]
select @username=max([username]) from [backuser]
select * from [backuser] --这里可以增加你的处理
set @a=@a-1
end
go
declare @username varchar(100)
declare @a int
set @a=0
set @username=''
select @a=count(1) from [userid]
set @a=(@a/1000)+1
while @a>=0 begin
truncate table [backuser]
insert [backuser] select top 1000 [username]+'|'+conver(varchar(100),[Phone])+'|'+convert(varchar(100),[IDX])+'|'+convert(varchar(100),[PostNumber])+'|'+[Email] from [user] where [username]>@username order by [username]
select @username=max(left([username],charindex('|',[username])-1)) from [backuser]
select * from [backuser] --这里可以增加你的处理
set @a=@a-1
end
go
可能我的表达有错误 不过 xueguang(xg)这为兄弟的确给了不少帮助