【问题标题】:How can I use a SQL MERGE Statement in VBA access?如何在 VBA 访问中使用 SQL MERGE 语句?
【发布时间】:2021-10-09 01:36:52
【问题描述】:

我一直在尝试在我的 Access 应用程序中使用 MERGE 语句。当我使用以下代码(为便于阅读而简化)时:

dim strSqlMerge as string
strSqlMerge = "MERGE TargeTable AS T USING SourceTable as S " & _
" ON T.PrimaryKeyColumn = S.PrimaryKeyColumn " & _
" WHEN MATCHED AND PrimaryKeyColumn = 'hardcodedvalue' THEN " & _
" UPDATE SET T.Column1 = S.Column1, T.Column2 = S.Column2, ..."

Currentdb.Execute strSqlMerge

我收到错误 3078:Microsoft Office Access 数据库引擎找不到输入表或查询“MERGE TargetTable AS T USING SourceTable as S ...” 确保它存在并且其名称拼写正确。

我们将不胜感激。

【问题讨论】:

  • Access没有实现MERGE,这里搜索Access Upsert
  • 坦率地说,即使在 SQL Server 中,MERGE 也是一个不错的主意,请参阅mssqltips.com/sqlservertip/3074/…

标签: sql-server vba ms-access ms-access-2010


【解决方案1】:

Access 不支持 MERGE。该结构存在于 T-SQL (SQL Server) 和其他 SQL 方言中,但不存在于 Access SQL 中。

【讨论】:

  • 好的,我看到你已经编辑了我的回复。但 MERGE 不是 T-SQL 构造。它存在于 ANSI SQL 中,其他一些数据库也实现了它(在那些数据库中它不称为 T-SQL)。
猜你喜欢
  • 2015-07-26
  • 2021-09-10
  • 2012-11-23
  • 2020-10-13
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多