【问题标题】:how to overwrite existing table from another database如何覆盖另一个数据库中的现有表
【发布时间】:2015-09-17 21:22:15
【问题描述】:

我已经尝试了很多次,但我再次找不到正确的答案,我在问同样的问题,

1 个查询

 select * From acct_db2016.dbo.acct_tran where trc_acno='12008001'

如果我这样搜索,我会得到 10 行,

2 查询

  select * From acct_db.dbo.acct_tran where trc_acno='12008001'

我得到 4 行 所以我想从(第二个查询)数据库向(第一个查询)数据库插入值 所以答案行将是 10+4=14 行(我的意思是覆盖 1 个查询数据库)

【问题讨论】:

  • 请添加标签以显示您正在使用的数据库产品。跨数据库工作的语法(以及这样做的能力)因产品而异。
  • 您是否尝试将数据库 2 中的行添加到数据库 1 中?如果是这样,则无需“覆盖”。只需插入数据库 2 中的记录。
  • 您使用的是哪个 DBMS?后格雷斯?甲骨文?
  • 是否要将行从一个表复制到另一个表?还是您只想读取两个表中的行?
  • 我想加入两个表并插入到第一个数据库

标签: sql


【解决方案1】:

如果我正确理解了这个问题并且假设 2 个表的架构是正确的,那么您想要的是 UNION。

select * From acct_db2016.dbo.acct_tran where trc_acno='12008001'
UNION
select * From acct_db.dbo.acct_tran where trc_acno='12008001'

要将第二个查询的结果插入到第一个表中,您应该使用以下内容:

INSERT INTO acct_db2016.dbo.acct_tran select * From acct_db.dbo.acct_tran where trc_acno='12008001'

此语法可能因您使用的数据库而异。此链接应为您提供有关通用 SQL 实现的更多详细信息。 http://www.w3schools.com/sql/sql_insert_into_select.asp

【讨论】:

  • UNION ALL 可能是 OP 想要的。
  • 我得到了答案,但我想将它插入第一个数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多