中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 04:37
48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » BCP IN 主键重复 怎样作错误处理?
可打印版本  1,388 / 8
第1楼 zyz0304360 发表于 2008-01-08 13:39
中级用户 发帖 123 积分 257 来自 烟台
BCP IN 主键重复 怎样作错误处理?


在BCP IN 出现主键重复这个错误时,怎么才能让能让批处理跳到:error这里?

注:
1.无论BCP IN成功或失败 errorlevel 都是0(echo %errorlevel%)
2.我试过在BCP IN 加 -e 参数(-e errfile.dat),然后用IF EXIST errfile.dat goto :error 但是每次执行BCP IN都生成errfile.dat (很让我失望)
第2楼 zyz0304360 发表于 2008-01-08 13:43
中级用户 发帖 123 积分 257 来自 烟台
不好意思
bcp "fee.dbo.Slip" in "Slip.dat" -S. -Usa -P -n -E
if errorlevel 1 goto :error

没有
我想突出重点,加粗一下
第3楼 lxmxn 发表于 2008-01-08 14:17
版主 发帖 4,938 积分 11,386
当主键重复时,BCP会有错误提示或者错误日志文件生成吗?

如果有其一,可以捕捉错误再来判断。
第4楼 zyz0304360 发表于 2008-01-08 16:03
中级用户 发帖 123 积分 257 来自 烟台
有错误提示或者错误日志文件生成
但是我不会写捕捉错误的代码
第5楼 zyz0304360 发表于 2008-01-08 16:44
中级用户 发帖 123 积分 257 来自 烟台
能不能给点提示或有时间的时候帮忙写一个
谢谢
第6楼 lxmxn 发表于 2008-01-08 18:00
版主 发帖 4,938 积分 11,386
把bcp命令放在for /f的括号里面,再来用findstr查找,找到就goto就可以了。
第7楼 zyz0304360 发表于 2008-01-09 12:51
中级用户 发帖 123 积分 257 来自 烟台
现在有一个test.txt的文件
文件中有“SQLState = 23000, NativeError = 2627”字符串

我现在是DOS初学阶段,只能看懂一些简单的
目前还不会写

请问
lxmxn
在这种情况下,应该怎样写呢?
谢谢
第8楼 chenall 发表于 2008-01-09 17:44
银牌会员 发帖 469 积分 1,276 来自 福建泉州
bcp语句后面加find 查找错误代码找到就跳
比如错误代码的特性是error
bcp "fee.dbo.Slip" in "Slip.dat" -S. -Usa -P -n -E|find /i "error"&&goto :error
第9楼 zyz0304360 发表于 2008-01-09 18:45
中级用户 发帖 123 积分 257 来自 烟台
谢谢
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023