当前位置: 代码迷 >> Sql Server >> BULK INSERT 产生的异常没有赋值给@@error
  详细解决方案

BULK INSERT 产生的异常没有赋值给@@error

热度:73   发布时间:2016-04-27 18:55:09.0
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   [email protected]   的信息。
该如何处理,请高手们帮忙解决!

------解决方案--------------------
这种情况我都是预先判断该文件是否存在,然后再确定是否执行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:来处理
  相关解决方案