SQL服务器上有一个学生数据表,现在新学生需要导入新数据,新数据是学生处COPY过来的,DBF格式.现在想用存储过程来实现学生数据表的数据追加,请问怎么实现从本地DBF格式追加到SQL数据库简单的举例,SQL数据表
StuSJ 学生数据表
Stu1 Stu2 Stu3 Stu4 Stu5 (各字段记录学生信息)从学生处COPY过来的表StuSJ.dbf
SDBF1 SDBF2 SDBF3 SDBF4 SDBF5 SDBF6 SDBF7 SDBF8DBF里面很多字段在SQL的StuSJ表里面是用不到了,我只想把一部分追加到学生数据表里面,当然这部分数据字段是固定的..这样怎么实现.
StuSJ 学生数据表
Stu1 Stu2 Stu3 Stu4 Stu5 (各字段记录学生信息)从学生处COPY过来的表StuSJ.dbf
SDBF1 SDBF2 SDBF3 SDBF4 SDBF5 SDBF6 SDBF7 SDBF8DBF里面很多字段在SQL的StuSJ表里面是用不到了,我只想把一部分追加到学生数据表里面,当然这部分数据字段是固定的..这样怎么实现.
SELECT SDBF1 SDBF2 SDBF3 SDBF4 SDBF5
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'd:\test.mdb';
'admin';'',Customers) a
--/* FoxPro 数据库
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
--*/
/**************导入DBF文件****************/
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select * from customer where country != "USA" order by country')
go
/***************** 导出到DBF ***************/
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句
insert into openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
select * from 表
说明:
SourceDB=c:\ 指定foxpro表所在的文件夹
aa.DBF 指定foxpro表的文件名.
如果是的话,因为DBF表里面有很多无用字段,我只想取想要的字段追加到SQL响应的字段
举例:
aa.DBF 有字段
SDBF1 SDBF2 SDBF3 SDBF4 SDBF5 SDBF6 SDBF7 SDBF8在SQL中有表
bb 字段为
Stu1 Stu2 Stu3 Stu4 Stu5 Stu6 Stu7现在我只需要DBF数据表中的
SDBF1 SDBF3 SDBF5 字段数据
追加插加SQL bb表
Stu1 Stu4 Stu7 字段中
而SQL bb表中的其他字段为默认这样该如何实现
select SDBF1,SDBF3,SDBF5 from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
OLE DB 提供程序 'MSDASQL' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序]
select a1,a2,a3 from openrowset( 'vfpoledb','c:\';'';'','select * from [aa.DBF]')