有没有办法通过 JDBC 在 SQL Server 中检索“消息”?

zli*_*i89 6 sql-server jdbc java

“消息”是指下图中的“消息”选项卡,其中包括“警告”、“受影响的 n 行”以及下图中的执行时间。在 JDBC 中,ResultSet 类用于检索“结果”。有没有办法通过JDBC获取“消息”选项卡中的所有信息?

在此处输入图片说明

a_h*_*ame 8

您可以获得大部分消息,但不幸的是不是全部。请参阅我关于 Stackoverflow 的问题。

通常PRINT,JDBC 驱动程序将这些消息(例如来自语句的消息)作为对 Statement 对象的警告返回。要检索它们,请在循环中使用 Statement.getWarnings():

Statement stmt = ...;
stmt.execute("some_procedure");

SQLWarning warning = stmt.getWarnings();

while (warning != null)
{
   System.out.println(warning.getMessage());
   warning = warning.getNextWarning();
}
Run Code Online (Sandbox Code Playgroud)

我已经看到一些消息也在 Connection 实例而不是 Statement 上返回。如果您没有看到任何内容,请使用您的 Connection 实例尝试上述代码。