0

如何遍历 SQL 表的行并将它们转换为另一个表的行?我有一个带有 Id、Timestamp、IpAddress 和两个 v​​archar(500) 的表,我想将其更改为另一个表,其中 Id、StartTime 和 EndTime 初始化为 Timestamp,没有 IpAddress,并且表的外键最初保存每个他们的 varchar(500)。谢谢!

4

2 回答 2

2

您可以使用select ... intoselect语句创建新表:

select  orig.Id
,       orig.Timestamp
,       fk1.Id
,       fk2.id
into    NewTable
from    OldTable orig
join    ForeignKey1 fk1
on      fk1.value = orig.varchar_1
join    ForeignKey2 fk2
on      fk2.value = orig.varchar_2

alter table NewTable add constraint FK_NewTable_ForeignKey1 
    foreign key references ForeignKey1(Id)

alter table NewTable add constraint FK_NewTable_ForeignKey2
    foreign key references ForeignKey2(Id)
于 2013-04-30T18:07:26.950 回答
1

如果表已存在,则语法为:

insert into TargetTable
(field1, field2, etc)
select field1, field2, etc
from OtherTables
where whatever
于 2013-04-30T18:23:16.300 回答