2010-11-16 35 views
1

我有两个字段(Utter和Misery)在表Massconfusion在数据库A,我需要移动到两个领域(也称为Utter和苦难)在一个表也称为Massconfusion数据库B.有两个键(主键和子键)保持这个数据与数据库A和B中的其余信息正确排序。
(基本上我们以某种方式丢失了两个字段中的大部分信息,并试图获得它从我们的数据库的旧副本和所有简单的恢复方法都没有奏效。)复制一个数据库表中的选择字段到另一个数据库表

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

回答

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可以根据你有多少个指标有慢,而且很贵,等

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 
+0

谢谢,解决的问题的复合材料。我很感激。 – Brett 2010-11-18 18:03:58

+0

@Brett:很高兴帮助。您是否请点击复选标记“接受”这个答案?谢谢。 – 2010-11-18 18:10:22

相关问题