将一个db表中的select字段复制到另一个db表

时间:2010-11-16 21:57:33

标签: sql-server

我在数据库A中的表Massconfusion中有两个字段(Utter和Misery)我需要移动到一个名为Massconfusion数据库B的表中的两个字段(也称为Utter和Misery)。有两个键(主键和子键)保持这些数据与数据库A和B中的其余信息正确分类 (基本上我们在某种程度上丢失了两个字段中的大部分信息,并试图从我们的数据库的旧副本中获取它,并且所有简单的恢复方法都没有用。)

我是sql脚本的新手。所以我在恳求,帮助!提前谢谢。

2 个答案:

答案 0 :(得分:0)

UPDATE B.dbo.MassConfusion
SET Utter = (SELECT Utter FROM A.dbo.MassConfusion WHERE A.PrimeKey = B.PrimeKey)

UPDATE B.dbo.MassConfusion
SET Misery= (SELECT Misery FROM A.dbo.MassConfusion WHERE A.PrimeKey = B.PrimeKey)

根据记录的数量以及它们的混乱情况,你可能最好插入一个新的表格,但.... UPDATE可能会很慢而且价格昂贵,具体取决于你有多少索引等等

答案 1 :(得分:0)

我还不清楚你的MassConfusion表的主键是什么。第一个版本假设MassConfusion的主键只是Primary。如果主键实际上是PrimarySubKey的组合,则使用第二个版本。

版本1 :主键由一列

组成
/* Just to make it clear that this is run from Database B */
Use B
go

update MCB
    set Utter = MCA.Utter,
        Misery = MCA.Misery
    from MassConfusion MCB
        inner join A.dbo.MassConfusion MCA
            on MCB.Primary = MCA.Primary

版本2 :主键是两列的组合

/* Just to make it clear that this is run from Database B */
Use B
go

update MCB
    set Utter = MCA.Utter,
        Misery = MCA.Misery
    from MassConfusion MCB
        inner join A.dbo.MassConfusion MCA
            on MCB.Primary = MCA.Primary
                and MCB.SubKey = MCA.SubKey