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