从XP_CMDSHELL捕捉错误信息

我运行下面的命令:

EXEC @ReturnCode = master.dbo.xp_cmdshell @cmdline

在结果选项卡上,我得到2行找不到路径'\服务器\目录\文件名“的一部分。 空值

我如何捕获错误消息的第一行? 我试图用一个try catch块“选择@ErrorMessage = ERROR_MESSAGE()”,并没有抓住它。

该消息不会从sys.messages到来。 这哪里是错误消息,然后来了?

--------------解决方案-------------

这个错误来自命令外壳本身,它不是一个SQL Server错误

抢错误的一种方法是

declare @cmdline varchar(500),@ReturnCode int
select @cmdline = 'dir f:'

create table #temp (SomeCol varchar(500))

insert #temp
EXEC @ReturnCode = master.dbo.xp_cmdshell @cmdline

if @ReturnCode <> 0
select * from #temp
where SomeCol is not null

当然,但如果你DIR C:该表将充满从该命令的所有文件和文件夹

分类:SQL 时间:2015-03-15 人气:0
本文关键词: SQL,TSQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.485 (s). 10 q(s)