sql server 2005 批量导入导出

来源:互联网 发布:安卓天气预报软件 编辑:程序博客网 时间:2024/05/01 16:17
如何将一个数据库中(存入十多万条数据) 的数据按照指定列分类导出成文本文件?

解答:这种情况需要使用BCP工具,并且这种工具是在SQL2000/2005下的一个“命令提示”工具下使用。具体的使用方法如下:

bcp "select *  from 库名.DBO.表名 [条件]"  queryout D:Empty.txt -c -SserverName -Usa -Ppassword

总结:

对于许多初学者来说,在这个语句中有些地方不太好理解。例如很多人最开始肯能以为以上的代码中,后面的参数标识符应该与参数之间间隔开来,但是实际上是不需要间隔的。而且在查询语句中FROM后面的表要写成具体的表名,仅此说明是哪个数据库中的哪个表。这样BCP工具才能够找到该表,从而继续进行下面的查询工作。(责任编辑:卢兆林)

 
 
SQL SERVER 2005数据导入导出语句
2008-06-26 09:49

/*******   导出到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

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

/** 导入文本文件
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表)


用动态sql动态定义文件名。然后把代码写到job里面,调度job即可。

 

 

 

sql server 2005 批量导入导出
发表日期:2007-6-14  |

                    

--------------------------------------------------------------------------------
-
declare @CMD_STR varchar(100)
declare @i int
declare @memo nvarchar(50)
set @memo='数据分离'
set @i=0
while @i<=153
begin

insert into t
select top 15000 *
from dbo.gceclub_member_email

select @CMD_STR= 'bcp jive.dbo.t' + ' out C:/TDDOWNLOAD/test/' + @memo+cast(@i as nvarchar(20)) + '.xls'+ ' -c -S 127.0.0.1 -U sa -P bizcom'                   
EXEC master.dbo.xp_cmdshell @CMD_STR
delete
from dbo.gceclub_member_email where Col001 in (select Col001 from t)
delete from t
set @i=@i+1
end

USE master
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure  'show advanced options', 0
 

资料引用:http://www.knowsky.com/345334.html

原创粉丝点击