日期:2014-05-18  浏览次数:20531 次

BULK INSERT 产生的错误没有赋值给@@error ?
declare   @ErrNo   int   ,
@ErrMsg   nvarchar(255)   ,
  @strSQL   nVARCHAR(1000)

BULK   INSERT   TempClock     from   'c:\aaa.txt '

set   @ErrNo   =   @@error
if   @ErrNo   >   0   select   @ErrMsg   =   description   from   master..sysmessages   where   error   =   @ErrNo
select   @ErrMsg  

我的   c:\aaa.txt   文件不存在,该返回“未能进行大容量插入。文件   'c:\aaa.txt '   不存在。”。但不会产生的错误赋值给@@error   。导致获取不到@ErrMsg   的信息。
该如何处理,请高手们帮忙解决!

------解决方案--------------------
这种情况我都是预先判断该文件是否存在,然后再确定是否执行bulk insert的

declare @rowcount int
exec master.dbo.xp_cmdshell "dir aaa.txt "
set @rowcount=@@rowcount

if @rowcount <> 9
begin
set @ErrStr= 'Log日志不存在 '
end
else
begin
bulk insert table_Pqs from 'c:\aaa.txt '
end


------解决方案--------------------
可以goto label:来处理