【问题标题】:Capture content from Messages Tab SSMS从消息选项卡 SSMS 中捕获内容
【发布时间】:2020-08-18 13:00:09
【问题描述】:

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

DBCC shrinkfile('Sample_log',0) 

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

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

(受影响的 1 行)

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

enter image description here

我有大约 200 个数据库来压缩文件,并且我编写了一个脚本来一次压缩所有文件。但是滚动消息选项卡并找出所有失败的文件非常困难。

那么,是否有任何选项可以从消息选项卡中捕获内容并插入到表格中? 或者有没有办法处理这种错误?

【问题讨论】:

    标签: sql-server database error-handling database-administration dbcc


    【解决方案1】:

    这取决于您使用的语言。如果您使用的是 dot net(无论是通过 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
    }
    

    【讨论】:

    • 嗨,你能说得更具体点吗?因为我是新手。我没有使用任何其他语言,也没有从任何其他应用程序运行它。如果我们需要使用一些外部脚本,您能否提供完整的详细信息?
    • 如果“脚本”是指“sql 脚本”,则不能。如果你想使用 powershell,这里有一个例子:dba.stackexchange.com/questions/156287/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    相关资源
    最近更新 更多