中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理,数据库,BCP IN 主键重复 的复杂问题
作者:
标题: 批处理,数据库,BCP IN 主键重复 的复杂问题 上一主题 | 下一主题
zyz0304360
中级用户




积分 257
发帖 123
注册 2008-1-5
来自 烟台
状态 离线
『楼 主』:  批处理,数据库,BCP IN 主键重复 的复杂问题

在批处理中(.bat)
写了一个BCP IN
如果导入数据时主键重复
errorlevel 依然为0
如果BCP中加了 -e 参数,也不会生成errfile文件。

例:
@echo off
set date=%date%
set fdate=%date:/=%
set folder=D:\
set folder_bk=D:\test\

date /T >>test.log
time /T >>test.log

echo begin in ......
bcp "master.dbo.table1" in "table1.dat" -S. -Usa -P  -n   -E -e%folder_bk%%fdate%errfile.dat || goto :_error
echo errorlevel: %errorlevel%
if errorlevel 1 (
        set errproc=Data IN
        set errsite=「table1 IN」
        goto :_Error
)
echo in succeeded!>>test.log
pause

copy test.log %folder_bk%%fdate%%time:~0,2%%time:~3,2%test.log

goto :end

:error
time /T >>test.log
echo here is an error >>test.log
goto end

:end
time /T >>test.log
echo ___________________END_______________>>test.log



在BCP IN主键重复报错的情况下

1.errorlevel依然是0(和BCP IN执行成功时一样)
2.|| goto :_error 没有执行(难道是BCP报错,但DOS不认为是错,反正是数据库和DOS没有直接关系,但是BCP就是批处理命令啊,太郁闷了)
3.BCP IN 中有 -e 参数,但主键重复时,不会生成errfile文件

请各位高手指点一下
怎么写,才能让BCP IN主键重复报错后,跳转到:error
谢谢大家



路 是自己选的
学习 是为了具备解决问题的能力
2008-1-7 19:39
查看资料  发短消息 网志  OICQ (625621812)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: