我试着在这里搜索类似的解决方案,但没有看到一个,所以我想知道什么是实现以下的最佳方法.
我有一个1700万行的表都有一个唯一的ID.我们最近创建了一个新表,它将与前一个表一起使用,其中新表的外键是旧表的唯一ID.
对于前者
表1 - id,field1,field2,field3 ...表2 - table1.id,field1 ...
问题是因为我们正在将它迁移到实时环境中,我们需要在表1中为表1中的每一行填充包含表1的id的行.ex,表1 - 1,test,null表2现在需要为table1中的每一行提供:1,null,...等等.主要问题是表1中的id不是全部顺序的,因此我们必须从表1中读取,然后根据找到的id插入到表2中.
有没有更简单的方法去做?在此先感谢乔
另外要澄清的是,表2将是新数据,它将包含在表1中的唯一内容是保持外键关系的id
这也是sql server 2000
kri*_*tof 50
如果我理解正确,你需要table2中的每条记录中的一条记录.另外我认为除了对table1的引用之外,table2最初应该包含空行.
所以假设
table1 (ID, field1, field2, ...)
table2 (ID, table1_ID, fieldA, fieldB,...)
-- where table1_ID is a reference to ID of table1
Run Code Online (Sandbox Code Playgroud)
创建table2后,您只需运行此insert语句即可
insert into table2(table1_ID)
select ID from table1
Run Code Online (Sandbox Code Playgroud)
Rya*_*ill 14
我不确定我是否正在关注你,但这样的事情对你有用吗?
INSERT INTO table2 ( SELECT field1, field2, field3... FROM table1 )
Run Code Online (Sandbox Code Playgroud)
如果我正确理解你想在table2中为table1中的每条记录创建一条记录.这样就可以了.只需按正确顺序匹配select中的字段,并为table1中没有table1中的任何字段指定常量.
HTH.让我知道,如果我不理解,我会再次尝试帮助.
你需要阅读这篇文章。
主要问题是表 1 中的 id 并不都是连续的,因此我们必须从表 1 中读取,然后根据找到的 id 插入表 2
是的,请查看我在上面的文章中的答案,并使用第 2 项编写一个按键循环。
确保在编写插入语句时提供一个字段列表 - 正如我在第 1 项中所说的那样。