SQL Server数据库和Access数据库之间的数据导入/导出。
  导入数据
   SELECT * INTO sqltable
    FROM  OPENDATASOURCE(
         'Microsoft.Jet.OLEDB.4.0',
         'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\data.mdb;Persist Security Info=False')...accesstable请问上面的代码是否需要sqltable 和 accesstable 表的结构是否完全 一样?  
如果sqltable 有两个字段(整型和字符串型) 和accesstable一个字段 (整型)是否可以?

解决方案 »

  1.   

    select * into x2 from x1 格式的语句,执行前x2表不能存在,否则报错。执行完后,在SQL中生成一个和x1结构相同的表。
      

  2.   

    那如果我现在有一个SQL数据库中的表 为 第1列 整型 ,第2列 字符串型,我想每个月把用户传过来的一个ACCESS中一列整型数据导入到 SQL中  不想通过其它方法,只想通过程序操作的只能是读一行写一行吗? 利用不上opendatasource 这样快捷的方法吗?
      

  3.   

    那你就不是用上面那个语句了而是用下列格式的语句:
    insert x2(列1,列2)
    select 列1,列2 from x1
    注意:x2是SQL中的被插入表,x1是Access中的表,被插入表的列1,列2要与插入表中有相同的字段类型,列1、列2的顺序可以根据需要调整。
      

  4.   

    也得用opendatasource吧? 大体意思了解了 能否给一下 具体一点的? 
      

  5.   

    你说的不清楚,你是否SQL有一个表,你的SQL表结构,你Access表结构如何?要达到什么目的?说清楚才好帮你。
      

  6.   

    主要是目的是定期 把一个系统导出来的基础数据,我再导入一 自己的软件 里面进行想要的分析而已。
    简单举个例子   sql A 表 中为 字段: 第1列 a.a 整弄 第二列2.b 字符串型(允许为空)    
    access数据库 B表 字段: 第1列 b.c 字符串型,第二列 b.d 字符串型
    现在定期 通过一条语句 实现  把B表中的 b.c 增加到 a表中。 大体实现下面的功能,不过代码指定是不正确:(把B表中的 b.c 增加到 a表中。 ))
    SELECT * INTO a
        FROM  OPENdrowset(
             'Microsoft.Jet.OLEDB.4.0',
             'Provider=Microsoft.Jet.OLEDB.4.0';'c:\data.mdb';'admin';'select c from b')
      

  7.   

    insert A(b)
    SELECT c
        FROM  OPENDATASOURCE(
             'Microsoft.Jet.OLEDB.4.0',
             'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\data.mdb;Persist Security Info=False')...accesstable

    红色部分的语法是否对请查下帮助。