读书人

SQL与Excel有关问题

发布时间: 2012-04-27 11:57:44 作者: rapoo

SQL与Excel问题
请问如何在SQL2000的数据库中使用语句把Excel表中的数据导入的数据库中?

[解决办法]

SQL code
select * into # from OPENROWSET('microsoft.jet.oledb.4.0','Excel 5.0;hdr=yes;database=d:\1月安排.xls',sheet$)
[解决办法]
一、打另外一

1.

打SQL server2000的另一的表

(1). select * from openrowset('sqloledb','sprogram';'develop';'11111','select * from kind')

(2). select * from openrowset('sqloledb','190.1.1.247';'develop';'11111','select * from kind')

(3). select * from opendatasource('sqloledb','data source=sprogram;user ID=develop;Password=11111').new_ks.dbo.kind



2.

打Access2000的一表

(1). select * from OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0','Data Source=e:\north.mdb;User ID=Admin;Password=')...supply

(2). select * from openrowset('Microsoft.Jet.OLEDB.4.0',

'e:\north.mdb';'admin';'',supply)

(3). select * from openrowset('Microsoft.Jet.OLEDB.4.0',

'e:\north.mdb';'admin';'','select * from supply where 供商>10')



3.

打Excel的一表

(1). select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=e:\test.xls',sheet1$)

(2). select * into 表 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=e:\test1.xls',sheet3$)



二、入出

1. 用BCP工具入出

(1)xls文件

EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:\test3.xls" -c -q -S"sprogram" -U"develop" -P"12345"'



(2)/** 导入文本文件

--入SQLServer

select * into 你的表 from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:\temp;','select * from contact.txt')

--查出

EXEC master..xp_cmdshell 'bcp "SELECT class_no,kind_no,cn_name FROM new_ks.dbo.kind ORDER BY 1,2" queryout "e:\TX1.txt" -c -q -S"sprogram" -U"develop" -P"12345"'

--直接导出到txt文件

EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:\TX3.txt" -c -S"GUIDE-1" -U"develop" -P"12345"'

--直接导出到xls文件
EXEC master..xp_cmdshell 'bcp DB_MRP.dbo.dept out "e:\TX3.xls" -c -S"GUIDE-1" -U"develop" -P"12345"'



--直接入

EXEC master..xp_cmdshell 'bcp ".dbo.表" in c:\DT.txt -c -S服器名 -U用 -P密'

EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:\TX1.txt" -c -q -S -U -P'

EXEC master..xp_cmdshell 'bcp hdh.dbo.kind in "e:\test3.xls" -c -q -S -U -P'



--用BULK INSERT入

BULK INSERT hdh.dbo.kind

FROM 'e:\tx1.txt'

WITH (

FIELDTERMINATOR = '\t',

ROWTERMINATOR = '\n'

)

前提件是表如kind要存在,而且字段test.txt字段目要一多

在查分析器中行,而且是以sa用登



bulk insert tbyhhk from 'c:\t.txt' with( formatfile='c:\bcp.txt')


[解决办法]
SQL code
SELECT a.* into tb_nameFROM openrowset('Microsoft.Jet.OLEDB.4.0','Excel 8.0;hdr=Yes;DataBase=盘符:\文件名.xls',工作表名$)   AS aGO 

读书人网 >SQL Server

热点推荐