无论如何将数据从一个表插入到不同数据库中的表中并保持数据的顺序相同吗?

时间:2015-07-08 17:24:57

标签: sql sql-server-2008

我一直在指这篇文章: Copy tables from one database to another in SQL Server

我可以使用以下代码从一个数据库表中获取数据:

INSERT INTO bar..tblFoobar( *fieldlist* )
SELECT *fieldlist* FROM foo..tblFoobar

但它不会将数据插入现有行,而是创建新行。我想更新已存在的行。

编辑:

我想我可能必须使用游标迭代原始数据库表列,然后更新新数据库中的相应列。

其他注释......这些表具有相同的结构,一个仅用于测试。我现在在测试版本中有数据,我需要将其移入生产数据库。

该表目前有大约90条记录。使用上面提到的INSERT INTO代码,它可以准确地将记录数量加倍。

2 个答案:

答案 0 :(得分:0)

如果您正在尝试订购数据(即最少到最大或按字段),您可以创建索引并根据该列对列进行排序。如果您要插入和维护Id关系,我建议您将原始ID字段保留为列,并为ID字段创建另一列,这样您就可以在需要时引用它,即使新Id更改也是如此。

答案 1 :(得分:0)

您似乎正在尝试更新列中的值。当您使用INSERT时,您所做的就是向表中添加新行...而不是更新表中的值。要更新值,您可以使用UPDATE

UPDATE bar..tblFoobar
SET bar..tblFoobar.column_name = foo..tblFoobar.column_name
FROM foo..tblFoobar
  join bar..tblFoobar
    on foo..tblFoobar.name = bar..tblFoobar.name

在上面的示例中,我已将更正的表(foo..tblFoobar)加入到需要在关键字段{bar..tblFoobar)上更新(name)的表中。既然两个表在相应的字段上连接起来,那么只需将不正确的列设置为另一个表中的更正值即可。