sql-server - SQL Server TRY/CATCH 中的内部消息
问题描述
我想在运行时处理我的程序中的错误
BACKUP DATABASE [MyDb] TO DISK = 'c:\Test.bak' WITH COMPRESSION;
命令。
如果我在没有 的情况下运行此命令TRY/CATCH
,我会收到两个错误:
消息 3201,级别 16,状态 1,第 24 行
无法打开备份设备“c:\Test.bak”。操作系统错误 5(拒绝访问。)。消息 3013,级别 16,状态 1,第 24 行
备份数据库异常终止。
但是当我TRY/CATCH
在这里显示的语句中使用时,我只得到这个错误的第二部分:
BEGIN CATCH
select ERROR_MESSAGE()
END CATCH
返回的错误只是:
BACKUP DATABASE 异常终止。
我怎样才能得到两部分错误?
解决方案
显然我误解了这个问题,所以从头开始。
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_LINE () AS ErrorLine
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_MESSAGE() AS ErrorMessage;
推荐阅读
- arrays - 如何重新排列要与兼容邻居订购的阵列?
- android - Android / Kotlin - 如何将 2 个套接字连接在一起(穷人的代理)
- amazon-web-services - Terraform:创建 SG 时属性“入口”的值不合适
- vector - 是否有任何函数可以将矢量减法映射到其坐标?
- python - Tkinter - 在 for 循环中单击时禁用按钮
- android - 使用来自 Visual Studio (Xamarin) 的 Google Play 商店签名始终收到“无效客户端”错误
- android - 如何将自动滚动 recyclerView 与音频同步
- php - 如何获取退回邮件的邮件参考
- java - 如何在 build.gradle.kts 中将 compileJava' 任务 (11) 和 'compileKotlin' 任务 (1.8) jvm 目标兼容性设置为相同的 Java 版本?
- blazor - Blazor.Client 在客户端启动时看不到 Blazor.Server,断点不起作用