数据导出导入脚本的解释

资讯 驱动中国 若水 1,247 次阅读 0 条评论
分享 Q

一、导出用户数据库中的表,将其置入文件 tables.tmp 中。 ^`]%1~P8l  
UJ^lB`8  
isql -Usa -Ppas -Sserver -otables.tmp <<-EOF  gAyEQBCj  
USE database_name  \pW( Yf*  
GO  nk71  
SELECT name FROM sysobjects WHERE type='U' ORDER BY name  vr*-20XH  
GO  S/GK{ y*  
exit  7< +VGXr  
EOF $^ee8J  
$td v__  
二、编辑 tables.tmp ,因 tables.tmp 中首两行和末三行, G?V!^WC|  
是我们不要的东西。前次的有小小错,现更正如下: N'[Far<v  
MSNec%n  
vi tables.tmp <<EOF 2>;/dev/null  4f#.YvnH  
:1,2 d      (删首两行) 4F`7g,`)|  
:$          (到末行) b$1$ 9)  
:-2,. d    (删末三行) mvQ8B?  
:1,$ <<<    (清各行左侧空格,即各行顶左。当然一个 < 也够用,1,$ 也可换成 % ) nuU3 yQ2  
: x  0>(c:}  
EOF }k:8{}Z  
h.ubMp'  
至如 <<EOF ... ... EOF ,批处理执行时,我们要屏蔽一些东西, | b0/s62\  
使它们不在屏上显示,哈哈、、、就用它了。 Q&3wNCm  
找本书看看,再在 SHELL 下,带 <<EOF ... ... EOF 项或不带该项 _4[H2T^D8z  
键入上述脚本,你就会有收获的。EOF 可用其他字母,但前后必须一致。 SS-tJP  
Lby8Jn8]  
三、导出用户数据库各表中的数据 MNDm+l6  
5=RjNJ5e  
total=`cat tables.tmp|wc -l`    (总表数)  H`v(kCDU  
current=0                      (当前的第 n 张表) )X] iz#.  
for table in `cat tables.tmp`  (将文件 tables.tmp 中的表名依次赋给 table) 96/#E |  
do  2ufUJ &d'  
current=$current+1  Z`(L:z1$  
echo "*** $current/$total bcpout $table ***"  5wqa,SPM  
bcp database_name..$table out $table.bcp -Usa -Ppas -Sserver -Jiso_1 -c  kN vJ  
echo "*** $table done ***\n"  eVBj5Ww\  
done  kAyM" }  
rm tables.tmp E0[ uV Q  
T(h`F 5i

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友