bcp如何导出和导入数据,

xurong76 2003-08-21 11:42:04
我有100多张表要导出。能做个批处理文件吗?如何处理!希望各位大侠指教!
...全文
65 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pstream 2003-09-08
  • 打赏
  • 举报
回复
写的越复杂,出错的几率越大;

没必要那么麻烦,不就是一句话吗?
shiufurong007 2003-08-30
  • 打赏
  • 举报
回复
Sservername是指你在DSEDIT里的定义的
jakey_yang 2003-08-27
  • 打赏
  • 举报
回复
分几步做:
第一步:做如下批处理文件:CreateInBCP.bat
@ECHO OFF
ECHO BCPIn Creater 1.00.20030827 > CreateInBCP.log ECHO BCPIn Creater 1.00.20030827

IF "%1" == "" GOTO NOUSER
IF "%2"=="" GOTO NOPASSWORD
IF "%3"=="" GOTO NOSERVER
isql -U %1 -P %2 -S %3 -b -i SelectInBCP.sql -o BCPIn.bat

ECHO BCPIn.bat Create Finish.
ECHO BCPIn.bat Create Finish. >> CreateInBCP.log

GOTO END

:NOSERVER
ECHO BCPIn.bat Creater error: Please give the Sybase Database server name. >> CreateInBCP.log
ECHO BCPIn.bat Creater error: Please give the Sybase Database server name.
GOTO EXAMPLE

:NOUSER

ECHO BCPIn.bat Creater error: Please give the USER name. >> CreateInBCP.log
ECHO BCPIn.bat Creater error: Please give the USER name.
GOTO EXAMPLE

:NOPASSWORD
ECHO BCPIn.bat Creater error: Please give the PASSWORD. >> CreateInBCP.log
ECHO BCPIn.bat Creater error: Please give the PASSWORD.
GOTO EXAMPLE

:EXAMPLE
ECHO The usage is: CreateInBCP USERNAME PASSWORD SERVERNAME >> CreateInBCP.log
ECHO The usage is: CreateInBCP USERNAME PASSWORD SERVERNAME
GOTO END


:END

第二步:做如下sql脚本文件:SelectInBCP.sql

set nocount on
use 数据库
go
select "bcp 数据库.用户名." + name + " in " + name + ".bcp -U 用户名 -P 密码 -S 服务器名 -c " + '-t " #### " -r "|\n" '
from sysobjects where type="U"
go
quit
go

第三步:
将数据库、用户、密码、服务器名分别替换成你的数据库、用户、密码、服务器名名称;
将两个文件放在一个目录当中,并执行 CreateInBCP.bat username password servername
那么就会生成你的所有表的BCPin.bat
这是生成的导入脚本。
注释:如果你需要将数据导出,将上面的in用替换的方法都改成out,包括文件名,这样你就一劳永逸了,从此无论再有什么表增加或减少,只要执行一下脚本就会生成你所需要的数据导出和导入的批处理脚本了。
要导出数据执行bcpout.bat
要导入数据执行bcpin.bat(导入数据的时候需要将表中的数据删除)
yhbttfile 2003-08-26
  • 打赏
  • 举报
回复
前面朋友说得对,写一个教本文件bcp.sql,内容如下:
select 'bcp database..' + name + ' out ' + '/data/' + name + '.out' + ' -n -Sservername -Usa -Pxxx' from database..sysobjects where type = 'U'

然后使用isql,给出如下命令:
$ isql -Usa -Pxxxx -ibcp.sql -obcp.sh
$ chmod +x bcp.sh
$ bcp.sh

说明:-S是指定SYBASE服务器名字,是“-Sservername”。如果你的服务器中设置了SYBASE的服务器名称变量,则可以不加参数-S。如果有问题,你可以先去掉-S选项测试。
如果是在WIN NT下面,则修改bcp.sh为bcp.bat就可以了。
fyyifeng 2003-08-26
  • 打赏
  • 举报
回复
请问下,Sservername是什么名字?
可否举个例子
shiufurong007 2003-08-26
  • 打赏
  • 举报
回复
前面不是有吗。。
select 'bcp database..' + name + ' out ' + '/data/' + name + '.out' + ' -n -Sservername -Usa -Pxxx' from database..sysobjects where type = 'U'
王暘 2003-08-22
  • 打赏
  • 举报
回复
做个脚本就行了
bcp ..table1
bcp ..table2
.....

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧