问题描述
我正在运行以下查询以缩小数据库的日志文件。
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打印了错误消息,请与您的 系统管理员。
我有大约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
}