我有一个包含6000个成员数据的表。我需要该表中的一些特定数据。我可以将它移到我的桌子上,但它有点复杂。 我的新成员系统的工作方式就像,当一个成员注册时,会给这个成员一个唯一的6-8位数id /令牌,并创建另外两个包含该成员令牌的表。
我的意思是第一张桌子就像,
[inID][stMail][stPass][stToken] .. etc
此令牌是我另一张表的关键
[stToken][stName][stSurname][stAdress][stPhone]...etc..
当我将这些数据移动到我的表格时,我需要创建另外两个表格,这些表格与原始表格具有相同的标记。
所以它看起来像
[1][mail][pass][123123]
[123123][name][surname][address][phone]
我怎样才能在SQL或asp.net C#中做到这一点?
我尝试从旧表中选择所有数据,取出我需要的字符串值并写下我的新表,但是8小时后它只写出200个成员的奇数数据。
对不起我有趣的英语。
答案 0 :(得分:0)
您可以尝试如下。在这种情况下,我假设你有一个生成token string
的逻辑。现在我只需用row_number()
值替换该标记。此方法使用临时表。
-- create a #temp table
create table #temp
(
[inID] int,
[stMail] varchar(20),
[stPass] varchar(20),
[stToken] varchar(20),
[stName] varchar(20),
[stSurname] varchar(20),
[stAdress] varchar(20),
[stPhone] varchar(20)
)
--insert values in #temp table
insert into #temp
select
[inID] ,
[stMail] ,
[stPass] ,
row_number() over (order by inID,stMail) as [stToken] ,
[stName] ,
[stSurname],
[stAdress] ,
[stPhone]
from t
--copy from #temp table into t1 and t2 tables
insert into t1
select
[inID] ,
[stMail] ,
[stPass] ,
[stToken]
from #temp
insert into t2
select
[stToken] ,
[stName] ,
[stSurname],
[stAdress] ,
[stPhone]
from #temp
--don't forget to drop the #temp table
drop table #temp
在这里查看demo sql fiddle链接:http://sqlfiddle.com/#!3/185eb/4