/**

 * 授权

 */

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.1\SQLEXPRESS" -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'数据库登录username' -P'数据库登录password'

      假设执行过程中出现了SQLState = S0002, NativeError=208这个错误,则表示是你的 -S服务名写错了,

      一般常写错是由于 没有加 数据库服务实例。这个能够參考你数据库的连接,照着数据库连接写就能够。

      下图是我本地的数据库连接,所以我在写 -S的时候。能够两种写法:-S'127.0.0.1\SQLEXPRESS' 或者 -S'PED-VICKY-251\SQLEXPRESS'

       

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmlja3ljaGVuODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">



3、导出文件里文乱码。解决方法

      bcp 'sql语句' queryout -c -S'IP\数据库服务实例' -U'数据库登录username' -P'数据库登录password'  改成

      bcp 'sql语句' queryout -w -S'IP\数据库服务实例' -U'数据库登录username' -P'数据库登录password'

      即 -c 改成 -w 即可

   

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

SQL Server数据库 bcp导出备份文件应用的更多相关文章

  1. 用BCP从SQL Server 数据库中导出Excel文件

    BCP(Bulk Copy Program)是一种简单高效的数据传输方式在SQL Server中,其他数据传输方式还有SSIS和DTS. 这个程序的主要功能是从数据库中查询Job中指定step的执行信 ...

  2. Amazon RDS 上的 Microsoft SQL Server » 导入和导出 SQL Server 数据库

    导入和导出 SQL Server 数据库 Amazon RDS 支持使用完整备份文件 (.bak 文件) 对 Microsoft SQL Server 数据库进行本机备份和还原.您可以在单个便携式文件 ...

  3. SQL Server中bcp命令的用法以及数据批量导入导出

    原文:SQL Server中bcp命令的用法以及数据批量导入导出 1.bcp命令参数解析 bcp命令有许多参数,下面给出bcp命令参数的简要解析 用法: bcp {dbtable | query} { ...

  4. SQL Server 数据库基于备份文件的【一键还原】

    1. 备份与还原的基础说明 我们知道在DBA的日常工作中,SQL Server 数据库的恢复请求偶有发生,可能是用作数据的追踪,可也可能能是数据库的灾难恢复. 数据库常用的备份命令如下: ----完整 ...

  5. SQL Server 数据库本地备份文件通过OSS工具上阿里云(恢复还原数据库)

    SQL Server数据库上云,通过备份文件上传进行恢复. 1.通过OSS工具上传备份文件. 相关知识和操作步骤请参考: https://blog.csdn.net/weixin_35773751/a ...

  6. SQL SERVER 数据库备份的三种策略及语句

    1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...

  7. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  8. 从SQL Server中导入/导出Excel的基本方法(转)

    从sql server中导入/导出 excel 的基本方法 /*=========== 导入/导出 excel 的基本方法 ===========*/ 从excel文档中,导入数据到sql数据库中,很 ...

  9. 不同版本的SQL Server之间数据导出导入的方法及性能比较

    原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...

随机推荐

  1. div自动适应浏览器窗口水平和垂直居中

    html <body> <div id="centerDiv">自动适应水平和垂直居中</div> </body> css ;;} ...

  2. HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式

    主要涉及知识点: HTML与XHTML HTML与XHTML的区别 DOCTYPE与DTD的概念 DTD的分类以及DOCTYPE的声明方式 标准模式(Standard Mode)和兼容模式(Quirc ...

  3. HttpWebRequest 知识点

    string Url = System.Configuration.ConfigurationManager.AppSettings["CallPaperInvoiceURL"]; ...

  4. 【SQL】BETWEEN操作符

    BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. 操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围.这些值可以是数值.文本或者日期. 注意: ...

  5. oracle 命令记录

    监听程序启动停止查看名利: 1.切换到oracle用户:su - oracle 2.查看监听状态:lsnrctl status 3.停止监听:lsnrctl stop 4.启动监听:lsnrctl s ...

  6. SAP computer之RAM

    RAM The RAM is a 16 X 8 static TTL RAM. We can program the RAM by means of the address and data swit ...

  7. SLAM: Orb_SLAM中的ORB特征

    原文链接:什么是ORB 关于Orb特征的获取:参考 最新版的OpenCV中新增加的ORB特征的使用 ORB是是ORiented Brief 的简称,对Brief的特定性质进行了改进. ORB的描述在下 ...

  8. 读书笔记「Python编程:从入门到实践」_8.函数

    8.1 定义函数 def greet_user(): # def 来告诉Python你要定义一个函数.这是函数定义 """Hello World""& ...

  9. (转)C#开发微信门户及应用(6)--微信门户菜单的管理操作

    http://www.cnblogs.com/wuhuacong/p/3701961.html 前面几篇继续了我自己对于C#开发微信门户及应用的技术探索和相关的经验总结,继续探索微信API并分享相关的 ...

  10. Ad hoc polymorphism

    与面向对象中的接口类或抽象类中定义的函数组类似: 函数的具体执行依赖与函数医用的类型. In programming languages, ad-hoc polymorphism[1] is a ki ...