SQL SERVER导入、导出数据到Excel
2008-10-22 13:32
411 查看
SQL Server 2005 使用SQL命令开启opendatasource,openrowset的办法
--show advanced options
sp_configure 'show advanced options',1
go
--Enable distributed query/transaction in AD HOC query like opendatasource/operquery
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
Go
EXCEL文件工作表是默认的Sheet命名为Sheet1,对应的字段的名称(第一行为标题)为SN
---向Excel查询
select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$]
where SN='SW88380E31G0'
select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [sheet1$]')
where SN='SW88380E31G0'
select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])
where SN='SW88380E31G0'
1)如遇OLE DB provider "MICROSOFT.JET.OLEDB.4.0" for linked server "(null)"报错,请安装SQL SP2补丁.
2)hdr=yes时可以把xls的第行作为字段看待,如不加HDR=yes;则默认为yes,如hdr=no的话,where时就会报错
3)[]和美圆$必须要,否则就会报错
---修改Execl
Update opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$]
set SN='TESTESTESTES'
where SN='SW88380E31G0'
Update OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [SN$]')
set SN='TESTESTESTES'
where SN='SW88380E31G0'
Update OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])
set SN='TESTESTESTES'
where SN='SW88380E31G0'
---导出Excel
insert into opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$](SN)
select 'INININININININ' As SN
insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [SN$]')(SN)
select 'INININININININ' As SN
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])(SN)
select 'INININININININ' As SN
BTW,BCP方式:
EXEC master..xp_cmdshell '"Del D:\SN.xls"'
---导出Excel
Declare @iSQL varchar(2000)
Set @iSQL='bcp "Select Serial_Number from PAL.dbo.Tsestatu where Serial_Number=''SW88380E31G0'''
Set @iSQL=@iSQL+' order by Serial_Number" queryout D:\SN.xls -c -S"172.26.40.21" -U"sa" -P"sa"'
EXEC master..xp_cmdshell @iSQL
---Txt导入SQL
Create Table AAA_SN_BK070724 (SN varchar(30))
Declare @iSQL nvarchar(600)
Set @iSQL='bcp "PAL.dbo.[AAA_SN_BK070724]" In "D:\SN.txt" -c -S"172.26.40.21" -U"sa" -P"sa"'
EXEC master..xp_cmdshell @iSQL
Select * from AAA_SN_BK070724
--show advanced options
sp_configure 'show advanced options',1
go
--Enable distributed query/transaction in AD HOC query like opendatasource/operquery
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
Go
EXCEL文件工作表是默认的Sheet命名为Sheet1,对应的字段的名称(第一行为标题)为SN
---向Excel查询
select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$]
where SN='SW88380E31G0'
select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [sheet1$]')
where SN='SW88380E31G0'
select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])
where SN='SW88380E31G0'
1)如遇OLE DB provider "MICROSOFT.JET.OLEDB.4.0" for linked server "(null)"报错,请安装SQL SP2补丁.
2)hdr=yes时可以把xls的第行作为字段看待,如不加HDR=yes;则默认为yes,如hdr=no的话,where时就会报错
3)[]和美圆$必须要,否则就会报错
---修改Execl
Update opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$]
set SN='TESTESTESTES'
where SN='SW88380E31G0'
Update OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [SN$]')
set SN='TESTESTESTES'
where SN='SW88380E31G0'
Update OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])
set SN='TESTESTESTES'
where SN='SW88380E31G0'
---导出Excel
insert into opendatasource('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=yes;Database=D:\SN.xls')[sheet1$](SN)
select 'INININININININ' As SN
insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\SN.xls;','select * from [SN$]')(SN)
select 'INININININININ' As SN
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\SN.xls',[sheet1$])(SN)
select 'INININININININ' As SN
BTW,BCP方式:
EXEC master..xp_cmdshell '"Del D:\SN.xls"'
---导出Excel
Declare @iSQL varchar(2000)
Set @iSQL='bcp "Select Serial_Number from PAL.dbo.Tsestatu where Serial_Number=''SW88380E31G0'''
Set @iSQL=@iSQL+' order by Serial_Number" queryout D:\SN.xls -c -S"172.26.40.21" -U"sa" -P"sa"'
EXEC master..xp_cmdshell @iSQL
---Txt导入SQL
Create Table AAA_SN_BK070724 (SN varchar(30))
Declare @iSQL nvarchar(600)
Set @iSQL='bcp "PAL.dbo.[AAA_SN_BK070724]" In "D:\SN.txt" -c -S"172.26.40.21" -U"sa" -P"sa"'
EXEC master..xp_cmdshell @iSQL
Select * from AAA_SN_BK070724
相关文章推荐
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- SQL Server与Excel Access之间数据的导入导出
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- C#导出GridView的数据到Excel以及Excel导入SQL Server
- SQL SERVER 和EXCEL的数据导入导出
- SQL Server 与 Excel,Access 数据表的导入导出(注:参照博园.NET大观)
- 轻松实现SQL Server与Access、Excel数据表间的导入导出
- SQL SERVER 和EXCEL的数据导入导出
- SQL SERVER 和EXCEL的数据导入导出
- SQL SERVER 和EXCEL的数据导入导出
- 轻松实现SQL Server与Access、Excel数据表间的导入导出
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- SQL SERVER 和ACCESS/excel的数据导入导出
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 轻松实现SQL Server与Access、Excel数据表间的导入导出
- SQL SERVER 和EXCEL的数据导入导出
- SQL Server 和Access ,Excel的数据导入导出
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换收藏