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

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

/*动态文件名 
declare @fn varchar(20),@s varchar(1000) 
set @fn = 'c:\test.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:\test.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:\test.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:\tt.txt" -c -t ,-U sa -P password'

BULK INSERT 库名..表名 
FROM 'c:\test.txt' 
WITH ( 
FIELDTERMINATOR = ';', 
ROWTERMINATOR = '\n' 
)

--/* 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:\VFP98\data; 
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:\test.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:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品

********************* 导入 xml 文件 [Page]

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)

/********************导整个数据库*********************************************/ 
[Page]

用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 --导出整个数据库,定义游标,取出所有的用户表 
declare @m_tbname varchar(250) 
if right(@filename,1)<>'\' set @filename=@filename+'\'

set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U''' 
exec(@m_tbname) 
open #tb 
fetch next from #tb into @m_tbname 
while @@fetch_status=0 
begin 
set @sql='bcp '+@tbname+'..'+@m_tbname 
+case when @isout=1 then ' out ' else ' in ' end 
+' "'+@filename+@m_tbname+'.txt " /w' 
+' /S '+@servername 
+case when isnull(@username,'')='' then '' else ' /U '+@username end 
+' /P '+isnull(@password,'') 
exec master..xp_cmdshell @sql 
fetch next from #tb into @m_tbname 
end 
close #tb 
deallocate #tb 
end 
go

/************* Oracle **************/ 
EXEC sp_addlinkedserver 'OracleSvr', 
'Oracle 7.3', 
'MSDAORA', 
'ORCLDB' 
GO

delete from openquery(mailser,'select * from yulin')

select * from openquery(mailser,'select * from yulin')

update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888

insert into openquery(mailser,'select disorder,catago from yulin')values(333,777)

补充:

对于用bcp导出,是没有字段名的.

用openrowset导出,需要事先建好表.

用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入

 
SQL语句导入导出大全

(转载)SQL语句导入导出大全的更多相关文章

  1. SQL Server导入导出不丢主键和视图的方法

    SQL Server导入导出 SQL Server 导入导出 工具/原料 使用Microsoft SQL Server Management Studio 导入导出数据. 直接使用Microsoft  ...

  2. 常见SQL Server导入导出数据的几个工具

    摘自:http://www.cnblogs.com/chenxizhang/archive/2011/06/09/2076542.html 在我们的日常工作中,与数据库打交道的机会越来越多.这一篇文章 ...

  3. Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件

    一.SQL数据导入/导出 目标: 使用SQL语句完成下列导出.导入操作: 将/etc/passwd文件导入userdb库userlist表并给每条记录加编号 将userdb库userlist表中UID ...

  4. MSSQL数据库导入导出大全二(SQL语句)

    Excel文件导入数据库多个Sheet if exists(select 1 from sysobjects where name=N'p_import_excel' and type='P')dro ...

  5. 转载-Oracle 数据库导入导出 dmp文件

    首先询问对方数据库的表空间名称和大小,然后在你的oracle中建立相应表空间,最后使用命令导入.导出数据.补充:1.要新建一个数据库: Oracle数据导入导出imp/exp就相当于oracle数据还 ...

  6. java实现将资源文件转化成sql语句导入数据库

    文档结构

  7. [转]PL/SQL Developer 导入导出csv文件

    PL/SQL Developer 可以导入或者导出CSV文件. 导入CSV文件步骤: 1.选择tools->text importer.... 2.选择第二个Data to oracle选项卡, ...

  8. PL/SQL Developper导入导出数据库的方法及说明

    导出步骤 1 tools ->export user object 选择选项,导出.sql文件. 2 tools ->export tables-> Oracle Export 选择 ...

  9. mysql数据库使用sql命令窗口查询的数据,改成sql语句导入到mysql数据库中

    1.查询语句为select * from t_table;导出的数据格式如下: 2.将数据文本备份,然后使用NOTEPAD++打开,然后只拷贝数据到新建txt中,然后进行如下替换: 1)将“ | ”分 ...

随机推荐

  1. javascript 递归之阶乘

    阶乘,即5! = 5*4*3*2*1, 先看传统的做法,利用while循环实现: function factorial(num){ var result = num; if(num<0){ re ...

  2. JQuery实现页面Loading效果

    第一步:添加遮罩层和LOADING层 <div class="overlay"></div><div id="AjaxLoading&quo ...

  3. compile ffmpeg

    download SDL 1.2.xxx version source code. 1) configure 2) make & make instll download recent ffm ...

  4. [转]使用ADO.NET访问Oracle存储过程

    本文转自:http://www.cnblogs.com/datasky/archive/2007/11/07/952141.html 本文讨论了如何使用 ADO.NET 访问 Oracle 存储过程( ...

  5. huhamhire-hosts必备神器!

    huhamhire-hosts 不用说你就知道是干嘛用的. 上地址: https://github.com/huhamhire/huhamhire-hosts https://hosts.huhamh ...

  6. Office365 InfoPath 表单的设计和应用(原创)

    表单的应用:我想到的有2种. 1 做为自定义表单库的模版. 通过发放url(模版链接)给用户来填写表单. 最后将在表单库中得到所有填写的信息列表. 如 2 上传表单做为ContentType 也就是自 ...

  7. 关于apple watch(苹果表)

      如何升级呢? 对于Apple Watch用户来说,只要打开Apple Watch的iPhone应用,打开主菜单然 后选择软件升级,就能下载升级文件.新版本可以无线安装.需要注意的是,在升级 wat ...

  8. php的传值和传址

    有些情况下,可能希望在函数体内对参数的修改在函数体外也能反映; 使用引用传递参数要在参数前加上&符号; 例子: <?php $a=5; function show(&$a){   ...

  9. 40个Java集合面试问题和答案【上】【转载】

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Java1 ...

  10. iss 防火墙

    控制面板\系统和安全\Windows 防火墙\允许的程序 如下图 将万维网服务(HTTP)打勾即可访问你的网站. 转自:http://bbs.pcbeta.com/viewthread-604506- ...