当前位置:  数据库>sqlserver

SQL Server数据库bcp导出备份文件应用示例

    来源: 互联网  发布时间:2014-10-14

    本文导语:  /** * 授权 */ EXEC sp_configure 'show advanced options',1; go reconfigure; go exec sp_configure 'xp_cmdshell',1; go reconfigure; go /**导入指定表的文本文件*/ EXEC master..xp_cmdshell 'bcp dbname..tablename in d:DT.txt -c -Sservername -Usa -Ppassword' exec master..xp_c...

/**
* 授权
*/
EXEC sp_configure 'show advanced options',1;
go
reconfigure;
go
exec sp_configure 'xp_cmdshell',1;
go
reconfigure;
go

/**导入指定表的文本文件*/
EXEC master..xp_cmdshell 'bcp dbname..tablename in d:DT.txt -c -Sservername -Usa -Ppassword'
exec master..xp_cmdshell 'bcp "select * from dbname..tablename" queryout "D:20140528.xls"-c -Sservername -Uuser -Ppassword'

xp_cmdshell参数说明

下面是我自己写的一个存储过程,可以直接拿去使用
第一步,先要授权。上面有授权的SQL代码

if exists(select * from sysobjects where type='p' and name='sp_export_posm_data') begin
drop procedure sp_export_posm_data;
end;
go

create procedure sp_export_posm_data 
@file_path varchar(200) /*导出后文件存放的路径*/
as
declare @exec_sql varchar(1000);
declare @file_name varchar(200); /*文件名称,时间格式,主要是用于记录数据是什么时候导出备份的*/
declare @table_name varchar(100); /*要导出数据的表名*/
declare @sql varchar(1000); /*执行业务数据查询的sql语句*/
/*要备份数据的业务表名*/
declare cur_tables cursor for
select name from sysobjects where 1=1 and type='u'
and name like 'WM_ORDER%' or name like 'WM_PICKING%' or name like 'RP_%'
begin try
open cur_tables;
fetch next from cur_tables into @table_name;
while @@FETCH_STATUS = 0 begin
set @file_name = '';
set @file_path = '';
set @sql = 'select * from DHL_POSM_WS..'+@table_name;
set @sql += ' where 1=1 and DATEDIFF(MONTH,MODIFY_TIME,GETDATE())>10';
print @sql;
set @exec_sql = ' bcp "'+@sql+'" queryout ';
if ''=@file_path begin
set @file_path = 'D:Program Files (x86)Microsoft SQL Server';
end;
print '111111';
set @file_name = @table_name+'_'+CONVERT(varchar(100), GETDATE(), 112)+'.xls';
set @file_path = @file_path + @file_name; /*文件路径*/
print '2222222';
set @exec_sql = @exec_sql +'"'+@file_path+'"';
set @exec_sql = @exec_sql +' -c -S"127.0.0.1SQLEXPRESS" -U"DHL_POSM_WS" -P"DHLposm"';
print @exec_sql;
-- 导出数据到本地文件
exec master..xp_cmdshell @exec_sql;
fetch next from cur_tables into @table_name;
end;
close cur_tables; -- 关闭游标 
deallocate cur_tables;-- 释放游标 
end try
begin catch
close cur_tables; -- 关闭游标 
deallocate cur_tables;-- 释放游标 
end catch;
go

-- 执行存储过程,进行测试
exec sp_export_posm_data '';

注意事项:

1、查询语句的语法 select * from [数据库名]..[表名];
如果运行过程中出现了SQLState = S1000, NativeError=0这个错误,这表示是你的数据库名或表名写错了
2、bcp 'sql语句' queryout -c -S'IP数据库服务实例' -U'数据库登录用户名' -P'数据库登录密码'
如果运行过程中出现了SQLState = S0002, NativeError=208这个错误,则表示是你的 -S服务名写错了,
一般常写错是因为 没有加 数据库服务实例,这个可以参考你数据库的连接,照着数据库连接写就可以。
下图是我本地的数据库连接,所以我在写 -S的时候,可以两种写法:-S'127.0.0.1SQLEXPRESS' 或者 -S'PED-VICKY-251SQLEXPRESS'

3、导出文件中文乱码,解决方法
bcp 'sql语句' queryout -c -S'IP数据库服务实例' -U'数据库登录用户名' -P'数据库登录密码' 改成
bcp 'sql语句' queryout -w -S'IP数据库服务实例' -U'数据库登录用户名' -P'数据库登录密码'
即 -c 改成 -w 就行

4、导出后的文件存放目录,一定要是SQL Server数据库安装的目录,不然会出错


    
 
 

您可能感兴趣的文章:

  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • SQLServer导出sql文件/表架构和数据操作步骤
  • SQL SERVER导入、导出文本文件的例子
  • SQL Server导入导出数据时最常见的一个错误解决方法
  • 解析PL/SQL Developer导入导出数据库的方法以及说明
  • SQL Server2008数据库导入导出兼容性处理方案
  • 在linex中,定时导出sql语句的结果到指定文件中
  • 查看并导出sql数据表字段的注释信息
  • PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
  • sql server 2005/2008 导出数据字典的方法
  • bcp+Sql语句抽取数据并导出的方法
  • mysql命令行还原phpMyAdmin导出的含有中文的SQL文件
  • SQL Server数据库重命名、导出数据的方法
  • c#生成excel示例sql数据库导出excel
  • 通过SQL语句直接把表导出为XML格式
  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]
  • MySQL导入导出.sql文件及常用命令小结
  • SQL Server数据库重命名、数据导出的方法说明
  • SQL Server 的 SQL 语句导入导出大全
  • SQL Server导入、导出、备份数据方法
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 拼接SQL字符串方法示例
  • sql 行转列示例代码
  • sql中count或sum为条件的查询示例(sql查询count)
  • sql 取代游标的写法示例
  • sql使用cast进行数据类型转换示例
  • sql 语句插入结果为select和值混合示例
  • sql2005统计技巧示例
  • sql函数实现递归查询示例
  • sql递归函数示例
  • java实现简单的给sql语句赋值的示例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql server 2008中备份集中的数据库备份与现有的xx数据库不同的解决方法
  • Sql Server 2000删除数据库备份文件
  • 有关sql server 2008 数据库自动备份作业的权限问题
  • 简单的SQL Server备份脚本代码
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享
  • 如何实现用jsp将sql server 的数据备份出来!并指定存放路径!
  • 备份数据库的T-SQL语句
  • 设置sql server定期自动备份
  • 设定sql server定期自动备份数据库
  • Oracle中备份表的简单sql命令语句
  • linux下能调用*.sql备份的数据库数据么?
  • SQL Server中用于备份的语句
  • sql server 2005 自动备份脚本
  • 用t-sql语句完整备份数据库的例子
  • 博客 iis7站长之家
  • 检验SQL Server备份的脚本
  • 通过SQL语句来备份,还原数据库
  • Sql2000数据库的备份文件恢复到Sql2005的方法
  • sql server 2000数据库备份还原的图文教程
  • sql server 2005 自动备份脚本一例
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3