【问题标题】:Can i copy data from one database table to another already existing database table sql server?我可以将数据从一个数据库表复制到另一个已经存在的数据库表 sql server 吗?
【发布时间】:2017-02-24 05:38:05
【问题描述】:

所以我有 2 个非常相似的数据库,除了表中存在的数据之外,它们是相同的。我想将 PILOT 数据库中存在的 EQUIP_MODEL 表中的数据复制到 DOMAIN 数据库中存在的 EQUIP_MODEL 表中。

这甚至可能吗?还是我必须手动插入所有数据?

【问题讨论】:

    标签: sql sql-server database tsql ssms


    【解决方案1】:

    您可以在Insert 语句中使用完全限定名称

    INSERT INTO DOMAIN.SCHEMANAME.EQUIP_MODEL (col1,col2,col3...)
    SELECT col1,col2,col3.. FROM PILOT.SCHEMANAME.EQUIP_MODEL
    

    要获取外键值(不是您必须根据列名和映射更改的确切代码)

    INSERT INTO DOMAIN.SCHEMANAME.EQUIP_MODEL
                (id,col2,col3)
    SELECT sp.id,
           col2,
           col3
    FROM   PILOT.SCHEMANAME.EQUIP_MODEL em
           JOIN PILOT.SCHEMANAME.Prent_table p
             ON em.id = p.id
           JOIN DOMAIN.SCHEMANAME.parent_table sp
             ON sp.somename_number_col = p.somename_number_col 
    

    【讨论】:

    • 我尝试了这个,但我得到了以下错误:
    • INSERT 语句与 FOREIGN KEY 约束“FKEY9506”冲突。冲突发生在数据库“DAJCOR”、表“dbo.EQUIP_TYPE”、列“id”中。
    • @Azuraith - 您可能需要加入父表并获取目标数据库的id
    • 好吧,这是有道理的,所以在 FROM 子句中加入表后,它运行查询并返回 0 行受影响。然后在做之后
    • SELECT * FROM DAJCOR.dbo.EQUIP_MODEL 没有数据,很抱歉在 2 个 cmets 中发帖不小心按回车键,并且由于某种原因无法编辑 cmets?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多