Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何捕获SQL Server脚本/代码中出现的所有错误消息_Sql Server_Error Handling_Try Catch - Fatal编程技术网

Sql server 如何捕获SQL Server脚本/代码中出现的所有错误消息

Sql server 如何捕获SQL Server脚本/代码中出现的所有错误消息,sql-server,error-handling,try-catch,Sql Server,Error Handling,Try Catch,错误消息()。但我希望捕获当查询无法将其写入日志表时在SSM上看到的所有错误 在my SQL Server 2017中,以下备份命令失败,SSMS显示2条错误消息-错误3202和3013 BACKUP DATABASE[promadag]到DISK=N'\\ServerX\SQL\DBA\u Full.bak',带有INIT、校验和、压缩、STATS=10 错误: Msg 3202,16级,状态1,第1行 写入“\\ServerX\SQL\DBA\u Full.bak”失败:112(磁盘空间不

错误消息()。但我希望捕获当查询无法将其写入日志表时在SSM上看到的所有错误

在my SQL Server 2017中,以下备份命令失败,SSMS显示2条错误消息-错误3202和3013

BACKUP DATABASE[promadag]到DISK=N'\\ServerX\SQL\DBA\u Full.bak',带有INIT、校验和、压缩、STATS=10
错误:
Msg 3202,16级,状态1,第1行
写入“\\ServerX\SQL\DBA\u Full.bak”失败:112(磁盘空间不足)
Msg 3013,16级,状态1,第1行
备份数据库正在异常终止。
但是当在
TRY CATCH
中执行时,为了捕获错误,
error\u MESSAGE()
中只有最后一个错误

开始尝试
使用INIT、校验和、压缩、STATS=10将数据库[Promodag]备份到DISK=N'\\ServerX\BACKUP\DBA\u Full.Bak'
结束尝试
开始捕捉
选择ERROR\u NUMBER()、ERROR\u MESSAGE()作为ErrorMessage
端接
输出为表:

(无列名)错误消息
3013备份数据库正在异常终止。

因此,请帮助说明如何连接
CATCH
块中的所有错误消息。

不幸的是,这是
CATCH
的一个已知“功能”,其中只有导致输入
CATCH
的错误才会由
error\u MESSAGE
等函数返回<代码>抛出
将提供它们的详细信息。不幸的是,关于这一主题的研究表明,在这种情况下,你最好在声明之外记录错误;例如在应用程序中或使用扩展事件。感谢@Larnu的回复。研究过THROW,事实上与RAISEERROR()相同,也无法理解如何捕获THROW的输出,以便稍后插入到表中。您无法从
THROW
捕获输出;它不是一个类似于
RAISERROR
的函数。不幸的是,这是
CATCH
的一个已知“功能”,其中只有导致输入
CATCH
的错误才会由
error\u MESSAGE
等函数返回<代码>抛出将提供它们的详细信息。不幸的是,关于这一主题的研究表明,在这种情况下,你最好在声明之外记录错误;例如在应用程序中或使用扩展事件。感谢@Larnu的回复。研究过THROW,事实上与RAISEERROR()相同,也无法理解如何捕获THROW的输出,以便稍后插入到表中。您无法从
THROW
捕获输出;它不是一个类似于
RAISERROR
的函数。