读书人

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

发布时间: 2012-01-30 21:15:58 作者: rapoo

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:来处理

读书人网 >SQL Server

热点推荐