导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

批处理,数据库,BCP IN 主键重复 的复杂问题

saintasia 2008-01-07 07:19:33
在批处理中(.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
谢谢大家
...全文
85 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
律己修心 2008-05-14
我顶一下又如何?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告