首页 文章

如何通过传递查询将Access表中的数据附加到SQL Server表?

提问于
浏览
1

似乎只能使用 pass-through query 从SQL Server表和MS Access中检索数据 . 但另一种方式呢?从Access表到SQL Server表 .

当我需要高性能时,我在MS Access中有哪些选择?
(将附加查询附加到链接表的常规方法只是 too slow

在传递查询中,我无法引用MS Access表或查询,因此我的INSERT INTO语句无法工作 . 有没有通过VBA解决?

2 回答

  • 0

    您可以在直通查询中使用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
    

    我怀疑它会更快 .

  • 0

    在Access中可以使用宏来使用SetValue动态创建传递查询定义(我认为现在称为SetProperty) . 基本上,您可以更新现有传递查询的查询定义,然后运行它 . 我这样做了一次,而且速度要快得多,但那是很久以前的事了 . 我可能有一块VB循环通过表来创建查询 .

相关问题