从“邮件”选项卡SSMS捕获内容

问题描述

我正在运行以下查询以缩小数据库的日志文件。

    www-data;
worker_processes auto;


events {
    worker_connections 1024;
    # multi_accept on;
}
http {
    ##
    # Basic Settings
    ##
    large_client_header_buffers 2 550k;
    client_header_timeout  3m;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

我担心的是,即使收缩失败,查询也将运行而不会出现任何错误。消息选项卡中仅显示一条消息。而且此错误也无法通过错误处理来捕获。

无法缩小日志文件2(),因为请求的大小()大于 最后一个逻辑日志文件的开始。

(受影响的1行)

DBCC执行完成。如果DBCC打印了错误消息,请与您的 系统管理员。

enter image description here

我有大约200个数据库来收缩文件,并且我编写了一个脚本来一次收缩所有文件。但是,很难滚动查看消息选项卡并查找所有文件失败的地方。

那么,是否有任何选项可以从“消息”选项卡捕获内容并将其插入表中? 还是有任何选项可以处理这种错误?

解决方法

这取决于您使用的语言。如果您使用的是点网(通过C#/ VB或Powershell),则可以设置事件以接收消息

yourSQLConnection.FireInfoMessageEventOnUserErrors = true;
yourSQLConnection.InfoMessage += yourSQLConnection_InfoMessage;


private static void yourSQLConnection_InfoMessage(object sender,System.Data.SqlClient.SqlInfoMessageEventArgs e)
{
    // do whatever you want
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...