-->

如何通过传递查询追加从Access表到SQL Server表中的数据?(How to append

2019-10-17 07:51发布

现在看来似乎是唯一可以使用传递查询检索从SQL Server表和到MS Access数据。 但如何对其他的方式? 从Access表到SQL Server表。

我有哪些选择从MS Access中,当我需要高性能?
(具有追加查询追加到一个链接表的正常方法是简单地太慢

在传递查询我不能引用MS Access表或查询,所以我的INSERT INTO语句不能正常工作。 有一个变通通过VBA?

Answer 1:

您可以在直通查询使用OPENROWSET。

SELECT id,
       atext
INTO   anewtable
FROM   OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                  'z:\docs\test.accdb'; 'admin';'',table1); 

你可能需要一些或所有这些选项:

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',
     N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', 
     N'DynamicParameters', 1
GO

我怀疑,这将是任何更快。



Answer 2:

有可能在访问使用宏来动态地创建通过查询定义使用的SetValue通(我想这就是所谓的SetProperty现在)。 基本上,你可以更新现有穿过查询查询定义,然后运行它。 我这样做一次,它是快了很多,但那是很久以前的事。 我可能有一段VB的,通过一台循环创建查询。



文章来源: How to append data from an Access table to a SQL server table via a pass-through query?