我在MySQL服务器上创建了一个程序,由于主键违规,它总是会抛出错误,这可以通过链接服务器从Microsoft SQL Server调用:
EXEC ('CALL temp_test;') AT LINKSVR;
当这个被调用时,我得到这个完整的消息:
OLE DB provider "MSDASQL" for linked server "LINKSVR" returned message "[MySQL][ODBC 5.1 Driver][###########]Duplicate entry '1' for key 'PRIMARY'".
Msg 7215, Level 17, State 1, Line 1
Could not execute statement on remote server 'LINKSVR'.
现在我要做的是把它放在TRY...CATCH...
中并将错误输出到表中,但是当我使用ERROR_MESSAGE()
时,我得到了最后一行
有没有办法获取返回的链接服务器消息?
答案 0 :(得分:0)
好的,得到了一个好的工作,它没有输出到表但我相信你可以在某处记录
有效地你这样做
BEGIN TRY
EXEC ('CALL sp_test;') AT LINKSVR;
END TRY
BEGIN CATCH
RAISERROR(N'Error called on Linked Server',16,1)
END CATCH
RAISERROR
将输出自定义错误和从链接服务器返回的消息,但是来自链接服务器的消息仍然无法存储在表中,但使用SQL Server代理作业活动监视器,该作业将在发生这一步骤时仍然失败,并且在步骤细节中输出所有数据