怎样快速的向DBF中插入数据

怎样快速的向DBF中插入数据,第1张

用Insert into Select语句批量处理咯,比如:

cnn2.execute "insert into [" &fname &"] ([ID],[Nf],[Yf],[Byds],[Sgds],[Bj]) select remonte_id,year(getdate()) as [nf],month(getdate()) as [yf],'0' as [byds],'0','N' from [odbcdriver={sql server}server=servernameuid=sapwd=database=db].[tablename]"

大概就是这个样子的,剩下你自己再研究研究咯

参考如下:

导出到excel

EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls"User ID=AdminPassword=Extended properties=Excel 5.0')...xactions

/*动态文件

declare @fn varchar(20),@s varchar(1000)

set @fn = 'c:\test.xls'

set @s ='''Microsoft.Jet.OLEDB.4.0'',

''Data Source="'+@fn+'"User ID=AdminPassword=Extended properties=Excel 5.0'''

set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'

exec(@s)

*/

SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls"User ID=AdminPassword=Extended properties=Excel 5.0')...xactions

/********************** EXCEL导到远程SQL

insert OPENDATASOURCE(

'SQLOLEDB',

'Data Source=远程ipUser ID=saPassword=密码'

).库名.dbo.表名 (列名1,列名2)

SELECT 列名1,列名2

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls"User ID=AdminPassword=Extended properties=Excel 5.0')...xactions

/** 导入文本文件

EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'

/** 导出文本文件

EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'

导出到TXT文本,用逗号分开

exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'

BULK INSERT 库名..表名

FROM 'c:\test.txt'

WITH (

FIELDTERMINATOR = '',

ROWTERMINATOR = '\n'

)

--/* dBase IV文件

select * from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'dBase IVHDR=NOIMEX=2DATABASE=C:\','select * from [客户资料4.dbf]')

--*/

--/* dBase III文件

select * from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'dBase IIIHDR=NOIMEX=2DATABASE=C:\','select * from [客户资料3.dbf]')

--*/

--/* FoxPro 数据库

select * from openrowset('MSDASQL',

'Driver=Microsoft Visual FoxPro DriverSourceType=DBFSourceDB=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 DriverSourceType=DBFSourceDB=c:\',

'select * from [aa.DBF]')

select * from 表

说明:

SourceDB=c:\ 指定foxpro表所在的文件夹

aa.DBF指定foxpro表的文件名.

/*************导出到Access********************/

insert into openrowset('Microsoft.Jet.OLEDB.4.0',

'x:\A.mdb''admin''',A表) select * from 数据库名..B表

/*************导入Access********************/

insert into B表 selet * from openrowset('Microsoft.Jet.OLEDB.4.0',

'x:\A.mdb''admin''',A表)

文件名为参数

declare @fname varchar(20)

set @fname = 'd:\test.mdb'

exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',

'''+@fname+'''''admin'''''', topics) as a ')

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="f:\northwind.mdb"Jet OLEDB:Database Password=123User ID=AdminPassword=')...产品

********************* 导入 xml 文件

DECLARE @idoc int

DECLARE @doc varchar(1000)

--sample XML document

SET @doc ='

<root>

<Customer cid= "C1" name="Janine" city="Issaquah">

<Order oid="O1" date="1/20/1996" amount="3.5" />

<Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied

</Order>

</Customer>

<Customer cid="C2" name="Ursula" city="Oelde" >

<Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue

white red">

<Urgency>Important</Urgency>

Happy Customer.

</Order>

<Order oid="O4" date="1/20/1996" amount="10000"/>

</Customer>

</root>

'

-- Create an internal representation of the XML document.

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

-- Execute a SELECT statement using OPENXML rowset provider.

SELECT *

FROM OPENXML (@idoc, '/root/Customer/Order', 1)

WITH (oid char(5),

amount float,

comment ntext 'text()')

EXEC sp_xml_removedocument @idoc


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6685798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存