SQL语句导入导出怎么写

72次阅读
没有评论

共计 5554 个字符,预计需要花费 14 分钟才能阅读完成。

这篇文章给大家分享的是有关 SQL 语句导入导出怎么写的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

SQL 语句导入导出大全
/******* 导出到 excel
EXEC master..xp_cmdshell bcp SettleDB.dbo.shanghu out c: emp1.xls -c -q -S GNETDATA/GNETDATA -U sa -P

/*********** 导入 Excel
SELECT *
FROM OpenDataSource(Microsoft.Jet.OLEDB.4.0,
Data Source= c: est.xls User ID=Admin;Password=;Extended properties=Excel 5.0)…xactions

/* 动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = c: est.xls
set @s =Microsoft.Jet.OLEDB.4.0,
Data Source= +@fn+ User ID=Admin;Password=;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: est.xls User ID=Admin;Password=;Extended properties=Excel 5.0)…xactions

/********************** EXCEL 导到远程 SQL
insert OPENDATASOURCE(
SQLOLEDB,
Data Source= 远程 ip;User ID=sa;Password= 密码
). 库名.dbo. 表名 (列名 1, 列名 2)
SELECT 列名 1, 列名 2
FROM OpenDataSource(Microsoft.Jet.OLEDB.4.0,
Data Source= c: est.xls User ID=Admin;Password=;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: t.txt -c -t ,-U sa -P password

BULK INSERT 库名.. 表名
FROM c: est.txt
WITH (
FIELDTERMINATOR = ;,
ROWTERMINATOR =

)

–/* dBase IV 文件
select * from
OPENROWSET(MICROSOFT.JET.OLEDB.4.0
,dBase IV;HDR=NO;IMEX=2;DATABASE=C:,select * from [客户资料 4.dbf])
–*/

–/* dBase III 文件
select * from
OPENROWSET(MICROSOFT.JET.OLEDB.4.0
,dBase III;HDR=NO;IMEX=2;DATABASE=C:,select * from [客户资料 3.dbf])
–*/

–/* FoxPro  
select * from openrowset(MSDASQL,
Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:,
select * from [aa.DBF])
–*/

/************** 导入 DBF 文件 ****************/
select * from openrowset(MSDASQL,
Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:VFP98data;
SourceType=DBF,
select * from customer where country != USA order by country)
go
/***************** 导出到 DBF ***************/
如果要导出数据到已经生成结构(即现存的)FOXPRO 表中, 可以直接用下面的 SQL 语句

insert into openrowset(MSDASQL,
Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=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: est.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:
orthwind.mdb Jet OLEDB:Database Password=123;User ID=Admin;Password=;)… 产品

********************* 导入 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

???????

/**********************Excel 导到 Txt****************************************/
想用
select * into opendatasource(…) from opendatasource(…)
实现将一个 Excel 文件内容导入到一个文本文件

假设 Excel 中有两列,第一列为姓名,第二列为很行帐号 (16 位)
且银行帐号导出到文本文件后分两部分,前 8 位和后 8 位分开。

邹健:
如果要用你上面的语句插入的话, 文本文件必须存在, 而且有一行: 姓名, 银行账号 1, 银行账号 2
然后就可以用下面的语句进行插入
注意文件名和目录根据你的实际情况进行修改.

insert into
opendatasource(MICROSOFT.JET.OLEDB.4.0
,Text;HDR=Yes;DATABASE=C:
)…[aa#txt]
–,aa#txt)
–*/
select 姓名, 银行账号 1 =left(银行账号,8), 银行账号 2 =right(银行账号,8)
from
opendatasource(MICROSOFT.JET.OLEDB.4.0
,Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:a.xls
–,Sheet1$)
)…[Sheet1$]

如果你想直接插入并生成文本文件, 就要用 bcp

declare @sql varchar(8000),@tbname varchar(50)

– 首先将 excel 表内容导入到一个全局临时表
select @tbname=[##temp+cast(newid() as varchar(40))+]
,@sql=select 姓名, 银行账号 1 =left(银行账号,8), 银行账号 2 =right(银行账号,8)
into +@tbname+ from
opendatasource(MICROSOFT.JET.OLEDB.4.0
,Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:a.xls
)…[Sheet1$]
exec(@sql)

– 然后用 bcp 从全局临时表导出到文本文件
set @sql=bcp +@tbname+ out c:aa.txt /S (local) /P /c
exec master..xp_cmdshell @sql

– 删除临时表
exec(drop table +@tbname)

/******************** 导整个数据库 *********************************************/
用 bcp 实现的存储过程

/*
实现数据导入 / 导出的存储过程
根据不同的参数, 可以实现导入 / 导出整个数据库 / 单个表
调用示例:
– 导出调用示例
—- 导出单个表
exec file2table zj,,,xzkh_sa.. 地区资料,c:zj.txt,1
—- 导出整个数据库
exec file2table zj,,,xzkh_sa,C:docman,1

– 导入调用示例
—- 导入单个表
exec file2table zj,,,xzkh_sa.. 地区资料,c:zj.txt,0
—- 导入整个数据库
exec file2table zj,,,xzkh_sa,C:docman,0

*/
if exists(select 1 from sysobjects where name=File2Table and objectproperty(id,IsProcedure)=1)
drop procedure File2Table
go
create procedure File2Table
@servername varchar(200) – 服务器名
,@username varchar(200) – 用户名, 如果用 NT 验证方式, 则为空
,@password varchar(200) – 密码
,@tbname varchar(500) – 数据库.dbo. 表名, 如果不指定:.dbo. 表名, 则导出数据库的所有用户表
,@filename varchar(1000) – 导入 / 导出路径 / 文件名, 如果 @tbname 参数指明是导出整个数据库, 则这个参数是文件存放路径, 文件名自动用表名.txt
,@isout bit –1 为导出,0 为导入
as
declare @sql varchar(8000)

if @tbname like %.%.% – 如果指定了表名, 则直接导出单个表
begin
set @sql=bcp +@tbname
+case when @isout=1 then  out  else  in  end
+ +@filename+ /w
+ /S +@servername
+case when isnull(@username,)= then  else  /U +@username end
+ /P +isnull(@password,)
exec master..xp_cmdshell @sql
end
else
begin – 导出整个数据库, 定义游标, 取出所

感谢各位的阅读!关于“SQL 语句导入导出怎么写”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计5554字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)