我正在运行以下命令:
EXEC @ReturnCode = master.dbo.xp_cmdshell @cmdline
在结果选项卡上,我得到2行 找不到路径'\ server \ directory \ filename'的一部分。 NULL
如何捕获错误消息中的第一行?我尝试使用带有“SELECT @ErrorMessage = ERROR_MESSAGE()”的Try Catch块,但它没有抓住它。
该消息不是来自sys.messages。这个错误消息从何而来?
答案 0 :(得分:2)
错误来自命令shell本身,它不是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:该表将填充该命令的所有文件和文件夹