SQL 导出到 指定ACCESS表 完美方案
由于程序需要把SQL SERVER 里的数据导入到ACCESS里.
刚开始使用DataSet来循环.
数据量少的时候还算可以应付的过来.
但当数据多的时候.
会报错"位置错误"
在网上搜寻一番.找到一个方法.
使用insert into openrowset
接着错误一个接一个的来..
"插入错误: 列名或所提供值的数目与表定义不匹配。"
"未能找到 OLE DB 提供程序 'Provider=Microsoft.Jet.OleDb.4.0' 的注册表项。"
导入数据后列顺序全部打乱..
后来继续搜.搜阿.搜阿.搜阿搜..
找到了这个方法.指定列名的.这样就可以指定列了.
代码如下:
[code=SQL]insert into openrowset('Microsoft.Jet.OLEDB.4.0', 'd:\dgener.mdb';'admin';'',AccessTable) (ACCESS列名1,列名2) select SQL列名1,SQL列名2 from SqlTable
[/code]
相关文档:
数据库:
1、 创建数据库的语法:
if exists (select * from sysdatabases where name='DT_name') /*判断是否存在,是则删除*/
drop database DT_name
create database database_name
on primary /* 指定主要文件组,其中第一个主要文件 * ......
RDBMS
方言
DB2
org.hibernate.dialect.DB2Dialect
DB2 AS/400
org.hibernate.dialect.DB2400Dialect
DB2 OS390
org.hibernate.dialect.DB2390Dialect
PostgreSQL
org.hib ......
select [name] from sysdatabases order by name--得到数据库中所有的库名
select [name] from sysobjects where xtype='U'and [name]<>'dtproperties' order by [name]--得到数据库表中的列表
select [name] from sysobjects where xtype='V' and [name]<>'syssegments' and [name]<>'sysconstraints' ......