Sql 如何在不复制主键的情况下导出/生成数据?

Sql 如何在不复制主键的情况下导出/生成数据?,sql,sql-server,Sql,Sql Server,我遇到了以下问题:我有两个数据库,比如说DB1和DB2 我正在使用SQLServer2008R2 在DB1中,我有: ID Value 1 Jef 2 Kendra tblPerson ID Value 1 Jake 2 Sandra 在DB2中,我有: ID Value 1 Jef 2 Kendra 我想导出或生成脚本或使用工具成为下一个 在DB1中: ID Value 1 Jak

我遇到了以下问题:我有两个数据库,比如说
DB1
DB2

我正在使用SQLServer2008R2

DB1
中,我有:

   ID   Value
   1    Jef
   2    Kendra
tblPerson

   ID Value
   1  Jake
   2  Sandra
DB2
中,我有:

   ID   Value
   1    Jef
   2    Kendra
我想导出或生成脚本或使用工具成为下一个

DB1
中:

   ID  Value
   1   Jake
   2   Sandra
   3   Jef
   4   Kendra
但我总是得到这样的结果:

   ID   Value
   1    Jake
   2    Sandra
   1    Jef
   2    Kendra
我试过:

  • 导出(在插入属性标识的情况下)
  • 在关闭“生成主键”的情况下生成脚本
所有这些都不起作用,或者说没有工具,或者说这是不可能的,我必须用手来做所有的事情吗

  • BCP输出表中的值
  • BCP输入,但不使用
    -E
    选项
  • 这将自动生成密钥,仅当密钥为


    或者,只需这样做:

    insert into DB1..tblPerson
    select Value from DB2..tblPerson
    

    不幸的是,您没有说明您使用的是哪个版本的SQL Server—如果您使用的是SQL Server2005或更新的版本,您可以使用以下内容:

    ;WITH CombinedData AS
    (
        SELECT DBNr = 1, ID, Value
        FROM DB1.dbo.tblPerson
    
        UNION ALL
    
        SELECT DBNr = 2, ID, Value
        FROM DB2.dbo.tblPerson
    )
    SELECT
        ROW_NUMBER() OVER (ORDER BY DBNr, ID) AS 'NewID',
        Value
    FROM 
        CombinedData
    
    NewID  PersonName
      1     Jake
      2     Sandra
      3     Jef
      4     Kendra
    
    这将为您提供如下输出:

    ;WITH CombinedData AS
    (
        SELECT DBNr = 1, ID, Value
        FROM DB1.dbo.tblPerson
    
        UNION ALL
    
        SELECT DBNr = 2, ID, Value
        FROM DB2.dbo.tblPerson
    )
    SELECT
        ROW_NUMBER() OVER (ORDER BY DBNr, ID) AS 'NewID',
        Value
    FROM 
        CombinedData
    
    NewID  PersonName
      1     Jake
      2     Sandra
      3     Jef
      4     Kendra
    

    将新表的id设置为自动标识后,您应该能够执行以下操作:

    insert into db1.NewTable ( Value ) select Value from db1.Table
    insert into db1.NewTable ( Value ) select Value from db2.Table
    

    桑德拉怎么了?没注意到复制粘贴错误(泰;)我遇到的问题是,我在不同的产品中得到了2个相等的分贝。所以他们认为数据不相等。现在我想要一个数据库的数据来补充另一个数据库的数据。但我有依赖关系等等。。。因此,我必须搜索一个迁移工具,或者像我的问题中那样手工进行迁移,通过这些例子,我会发现问题是我在不同的产品中得到了2个相等的DB。所以他们认为数据不相等。现在我想要一个数据库的数据来补充另一个数据库的数据。但我有依赖关系等等。。。所以我必须搜索一个迁移工具,或者像我的问题中那样手工完成,通过这些例子tough@daageu:如果您可以将其中一个数据库中的数据导出/导入到第二个数据库所在的同一服务器上,则可以使用上面概述的方法。这有可能吗??