#!C:\Perl64\bin

#由BCP备份和恢复SQLSERVER指定表

use 5.014;

#加载用户和password型材

my $username ;

my $passwd;

##得到username

my $dir="c:";

$dir=$dir."/";

my $filename="config.txt";

my $keysword="username:";

my $count="50";

my $begincount=index($keysword,":");

my($file);

open(FILEH,$dir.$filename);

 while(my $test=<FILEH>){

   if((index($test,$keysword))>=0){

 my $test1=substr($test,$begincount+1,$count);

    #print "$test1";

 chomp($username=$test1);

   }

 }

close(FILEH);

##获取password

my $dir="c:";

$dir=$dir."/";

my $filename="config.txt";

my $keysword="password:";

my $count="50";

my $begincount=index($keysword,":");

my($file);

open(FILEH,$dir.$filename);

 while(my $test=<FILEH>){

   if((index($test,$keysword))>=0){

 my $test2=substr($test,$begincount+1,$count);

    #print "$test2";

 chomp($passwd=$test2);

   }

 }

close(FILEH);

print "-------------------------------------------------------------------\n";

print "请首先检查用户和password配置文件config.txt保存路径是否为$dir$filename\n";

print "-------------------------------------------------------------------\n";

print "重要提示:备份表操作请输入0;还原表操作请输入1\n";

print "请输入操作代码:";

chomp(my $inp=<STDIN>);

print "你输入的操作代码为$inp\n";

#推断输入为0即备份操作

if ($inp eq 0){

print 'serverIP:(不输入默觉得localhost)';

chomp(my $a = <STDIN>);

if ($a==''){

$a='localhost';

}else{

print "你输入的serverIP为:$a\n";

}

print 'username:';

chomp(my $b = <STDIN>);

print "你输入的username为:$b\n";

if($b eq $username) {

print "用户通过!\n";

} else {

  print "对不起,username错误\n";

  exit;

}

print "用户password: ";

chomp (my $readPsw = <STDIN>);

if($readPsw eq $passwd) {

print "password正确!\n";

} else {

  print "对不起,password错误\n";

  exit;

}

print "重要提示:备份表的表名格式为:test.dbo.t1\n";

print '备份的表:';

chomp(my $d = <STDIN>);

print "你输入的备份的表:$d\n";

print '保存路径:';

chomp(my $e = <STDIN>);

print "你输入的保存路径:$e\n";

if (-e $e){

print "$e已经存在!是否删除?(y删除;n不删除)\n";

chomp(my $i=<STDIN>);

given ($i)

{

when ("y") {

unlink $e;

print "開始备份表!\n";

system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

when  ("n")

{

print "-----------备份已经终止-----------\n";

print "指定文件存在,请又一次输入文件名称!\n";

}

default {print "仅仅能输入y或n!\n";}

}

}

else{

{

system (" bcp $d out $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

}

}

#推断输入为1还原操作

elsif($inp eq 1){

print 'serverIP:(不输入默觉得localhost)';

chomp(my $a = <STDIN>);

if ($a==''){

$a='localhost';

}else{

print "你输入的serverIP为:$a\n";

}

print 'username:';

chomp(my $b = <STDIN>);

print "你输入的username为:$b\n";

if($b eq $username) {

print "用户通过!\n";

} else {

  print "对不起,username错误\n";

  exit;

}

print "用户password: ";

chomp (my $readPsw = <STDIN>);

if($readPsw eq $passwd) {

print "password正确!\n";

} else {

  print "对不起,password错误\n";

  exit;

}

print '须要还原的表:';

chomp(my $d = <STDIN>);

print "你输入的备份的表:$d\n";

print '备份保存路径:';

chomp(my $e = <STDIN>);

if (-e $e) {

print "你输入的备份保存路径:$e\n";

system (" bcp $d in $e -c -t ',' -m 1 -a 49152 -b 5000 -F 1 -S $a -U $b -P $readPsw ");

}

else {

print "对不起,指定的备份文件$e不存在,请核实!\n";

}

}

else{

print "请參考重要提示!\n";

}

system 'pause';

----config.txt

username:sa

password:passwd123!

----用法

1.将config.txt保存到c文件夹包装

根据实际情况更改文件的内容

2.运行bcp.pl

perl操作sqlserver实现BCP的更多相关文章

  1. 使用cmd命令行窗口操作SqlServer

    本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql  ?/   ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...

  2. Java连接并操作SQLServer数据库

    本人只需在项目中引入sqljdbc4.jar 包即可 ----------------------------------------- 在JAVA中如何连接SQL Server数据库 - hangh ...

  3. Python操作SQLServer示例(转)

    转自:http://www.cnblogs.com/lrzy/p/4346781.html 本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数 ...

  4. 转:Python操作SQLServer示例

    注:此文也是转载,2018年1月发现此文阅读量过万,略感不安.当时只是为了自己存档学习,未粘此文的原始连接.如有侵权,通过即删除,敬请谅解! 从网上找的,估计原文是:Python操作SQLServer ...

  5. Python操作SQLServer示例

    本文主要是Python操作SQLServer示例,包括执行查询及更新操作(写入中文). 需要注意的是:读取数据的时候需要decode('utf-8'),写数据的时候需要encode('utf-8'), ...

  6. perl操作MongoDB

    perl操作MongoDB http://blog.csdn.net/jophyyao/article/details/8223190 Mongodb 的C语言操作 http://blog.csdn. ...

  7. MongoDB的安装配置、基本操作及Perl操作MongoDB

    MongoDB的安装配置.基本操作及Perl操作MongoDB http://www.myhack58.com/Article/60/63/2014/42353.htm

  8. C#操作SqlServer MySql Oracle通用帮助类

    C#操作SqlServer MySql Oracle通用帮助类 [前言] 作为一款成熟的面向对象高级编程语言,C#在ADO.Net的支持上已然是做的很成熟,我们可以方便地调用ADO.Net操作各类关系 ...

  9. .NET基础操作回顾_使用ADO.NET操作SqlServer使用的类

    有些工具用的久了或者有新工具出现后,就慢慢的遗忘了很多,它们从熟悉的变成陌生,当然,对于我们来说不是好事吧. 今天回顾一下ADO.NET用到的MS的基础类库,先上代码(标准的SqlServer操作) ...

随机推荐

  1. C++不支持Unicode,即使utf8

    今天,字符串unicode我们已经不需要常理的理由,但是,一些有编程语言的悠久历史.这仍然是一个头疼. 尽管第三方库支持的假设,C++事实上没有真正有效地支持unicode.即使utf8.(注意:本文 ...

  2. Unity MegaFiers 顶点动画

        使用 MegaFiers 插件,能够使得Unity支持顶点动画的播放. 官方视频教程例如以下: 在这里简单測试使用下,环境例如以下: Blender 2.72 Unity 4.5.4 Mega ...

  3. VS Code开发调试.NET Core

    使用VS Code开发 调试.NET Core 应用程序   使用VS Code开发 调试.NET Core RC2应用程序,由于.NET Core 目前还处于预览版. 本文使用微软提供的示例进行开发 ...

  4. 微信支付.net官方坑太多,我们来精简

    原文:微信支付.net官方坑太多,我们来精简 微信支付官方坑太多,我们来精简 我把官方的代码,打包成了 an.wxapi.dll. 里面主要替换了下注释.呵呵.然后修改了几个地方. 修改一.Confi ...

  5. fs学习笔记之输出格式

    接触fs那么久,有必要再记录一下. 上一篇介绍了fs拓扑描写叙述文件dot的格式,今天要介绍fs输出文件的格式. 举个样例,下面是d节点输出文件的一行记录,也就是一条流经过d的记录. textexpo ...

  6. 大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网

    大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网 大兴雷克萨斯深度剖析2013款LS460L

  7. 自己做站点(二) 20块钱搞定一个企业站:域名&amp;空间申请

    域名注冊的话,推荐大家用新网,由于申请费用确实非常低,但续费的价格还是比較高的,所以不妨多申请几年.打开站点: http://www.xinnet.com/ 注冊一个帐号,然后申请域名,你能够看到,费 ...

  8. cocos2d-x 贝塞尔曲线的简单运用(CCBezierTo,CCBezierBy)

    原文链接:http://blog.csdn.net/we000636/article/details/8616355 一.贝赛尔曲线简单介绍 贝塞尔曲线是应用于二维图形应用程序的数学曲线.曲线的定义有 ...

  9. SVN基于Maven的Web项目更新,本地过程详细解释

    周围环境 MyEclipse:10.7 Maven:3.1.1 概要 最近在做项目,MyEclipse下载SVN基于上述Maven的Web问题,有时候搞了非常半天,Maven项目还是出现叉号,最后总结 ...

  10. java-IO操作性能对照

    在软件系统中.IO速度比内存速度慢,IO读写在非常多情况下会是系统的瓶颈. 在java标准IO操作中,InputStream和OutputStream提供基于流的IO操作.以字节为处理单位:Reade ...