SQL导入导出语句Word下载.docx
- 文档编号:19466121
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:7
- 大小:17.73KB
SQL导入导出语句Word下载.docx
《SQL导入导出语句Word下载.docx》由会员分享,可在线阅读,更多相关《SQL导入导出语句Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
SELECT*FROMOpenDataSource('
+@s+'
)...sheet1$'
exec(@s)
*/
SELECTcast(cast(科目编号asnumeric(10,2))asnvarchar(255))+'
'
转换后的别名
/**********************EXCEL导到远程SQL
insertOPENDATASOURCE(
SQLOLEDB'
DataSource=远程ip;
UserID=sa;
Password=密码'
).库名.dbo.表名(列名1,列名2)
SELECT列名1,列名2
/**导入文本文件
bcpdbname..tablenameinc:
\DT.txt-c-Sservername-Usa-Ppassword'
/**导出文本文件
bcpdbname..tablenameoutc:
或
bcp"
Select*fromdbname..tablename"
queryoutc:
导出到TXT文本,用逗号分开
execmaster..xp_cmdshell'
库名..表名"
out"
d:
\tt.txt"
-c-t,-Usa-Ppassword'
BULKINSERT库名..表名
FROM'
\test.txt'
WITH(
FIELDTERMINATOR='
ROWTERMINATOR='
\n'
)
--/*dBaseIV文件
select*from
OPENROWSET('
MICROSOFT.JET.OLEDB.4.0'
'
dBaseIV;
HDR=NO;
IMEX=2;
DATABASE=C:
\'
select*from[客户资料4.dbf]'
--*/
--/*dBaseIII文件
dBaseIII;
select*from[客户资料3.dbf]'
--/*FoxPro数据库
select*fromopenrowset('
MSDASQL'
Driver=MicrosoftVisualFoxProDriver;
SourceType=DBF;
SourceDB=c:
select*from[aa.DBF]'
/**************导入DBF文件****************/
SourceDB=e:
\VFP98\data;
SourceType=DBF'
select*fromcustomerwherecountry!
="
USA"
orderbycountry'
go
/*****************导出到DBF***************/
如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句
insertintoopenrowset('
select*from表
说明:
\指定foxpro表所在的文件夹
aa.DBF指定foxpro表的文件名.
/*************导出到Access********************/
x:
\A.mdb'
admin'
A表)select*from数据库名..B表
/*************导入Access********************/
insertintoB表selet*fromopenrowset('
A表)
文件名为参数
declare@fnamevarchar(20)
set@fname='
\test.mdb'
exec('
SELECTa.*FROMopendatasource('
+@fname+'
topics)asa'
f:
\northwind.mdb"
JetOLEDB:
DatabasePassword=123;
)...产品
*********************导入xml 文件
DECLARE@idocint
DECLARE@docvarchar(1000)
--sampleXMLdocument
SET@doc='
<
root>
Customercid="
C1"
name="
Janine"
city="
Issaquah"
>
Orderoid="
O1"
date="
1/20/1996"
amount="
3.5"
/>
O2"
4/30/1997"
13.4"
Customerwasverysatisfied
/Order>
/Customer>
Customercid="
C2"
Ursula"
Oelde"
>
O3"
7/14/1999"
100"
note="
Wrapitblue
whitered"
Urgency>
Important<
/Urgency>
HappyCustomer.
O4"
10000"
/>
/root>
--CreateaninternalrepresentationoftheXMLdocument.
EXECsp_xml_preparedocument@idocOUTPUT,@doc
--ExecuteaSELECTstatementusingOPENXMLrowsetprovider.
SELECT*
FROMOPENXML(@idoc,'
/root/Customer/Order'
1)
WITH(oidchar(5),
amountfloat,
commentntext'
text()'
EXECsp_xml_removedocument@idoc
/**********************Excel导到Txt****************************************/
想用
select*intoopendatasource(...)fromopendatasource(...)
实现将一个Excel文件内容导入到一个文本文件
假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)
且银行帐号导出到文本文件后分两部分,前8位和后8位分开。
邹健:
如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:
姓名,银行账号1,银行账号2
然后就可以用下面的语句进行插入
注意文件名和目录根据你的实际情况进行修改.
insertinto
opendatasource('
Text;
HDR=Yes;
)...[aa#txt]
--,aa#txt)
select姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8)
from
Excel5.0;
HDR=YES;
DATABASE=c:
\a.xls'
--,Sheet1$)
)...[Sheet1$]
如果你想直接插入并生成文本文件,就要用bcp
declare@sqlvarchar(8000),@tbnamevarchar(50)
--首先将excel表内容导入到一个全局临时表
select@tbname='
[##temp'
+cast(newid()asvarchar(40))+'
]'
@sql='
into'
+@tbname+'
from
)...[Sheet1$]'
exec(@sql)
--然后用bcp从全局临时表导出到文本文件
set@sql='
\aa.txt"
/S"
(local)"
/P"
/c'
execmaster..xp_cmdshell@sql
--删除临时表
droptable'
+@tbname)
/********************导整个数据库*********************************************/
用bcp实现的存储过程
/*
实现数据导入/导出的存储过程
根据不同的参数,可以实现导入/导出整个数据库/单个表
调用示例:
--导出调用示例
----导出单个表
execfile2table'
zj'
xzkh_sa..地区资料'
\zj.txt'
1
----导出整个数据库
xzkh_sa'
C:
\docman'
--导入调用示例
----导入单个表
0
----导入整个数据库
ifexists(select1fromsysobjectswherename='
File2Table'
andobjectproperty(id,'
IsProcedure'
)=1)
dropprocedureFile2Table
createprocedureFile2Table
@servernamevarchar(200)--服务器名
@usernamevarchar(200)--用户名,如果用NT验证方式,则为空'
@passwordvarchar(200)--密码
@tbnamevarchar(500)--数据库.dbo.表名,如果不指定:
.dbo.表名,则导出数据库的所有用户表
@filenamevarchar(1000)--导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个参数是文件存放路径,文件名自动用表名.txt
@isoutbit--1为导出,0为导入
as
declare@sqlvarchar(8000)
if@tbnamelike'
%.%.%'
--如果指定了表名,则直接导出单个表
begin
bcp'
+@tbname
+casewhen@isout=1then'
out'
else'
in'
end
+'
"
+@filename+'
/w'
/S'
+@servername
+casewhenisnull(@username,'
)='
then'
/U'
+@usernameend
/P'
+isnull(@password,'
end
else
begin--导出整个数据库,定义游标,取出所有的用户表
declare@m_tbnamevarchar(250)
ifright(@filename,1)<
set@filename=@filename+'
set@m_tbname='
declare#tbcursorforselectnamefrom'
..sysobjectswherextype='
U'
exec(@m_tbname)
open#tb
fetchnextfrom#tbinto@m_tbname
while@@fetch_status=0
..'
+@m_tbname
+@filename+@m_tbname+'
.txt"
close#tb
deallocate#tb
/*************Oracle**************/
EXECsp_addlinkedserver'
OracleSvr'
Oracle7.3'
MSDAORA'
ORCLDB'
GO
deletefromopenquery(mailser,'
select*fromyulin'
select*fromopenquery(mailser,'
updateopenquery(mailser,'
select*fromyulinwhereid=15'
)setdisorder=555,catago=888
insertintoopenquery(mailser,'
selectdisorder,catagofromyulin'
)values(333,777)
补充:
对于用bcp导出,是没有字段名的.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 导入 导出 语句