DBCC CHECKDB未返回Java(MS SQL)中的结果集
以下是我的功能:DBCC CHECKDB未返回Java(MS SQL)中的结果集,java,sql-server,resultset,executequery,dbcc,Java,Sql Server,Resultset,Executequery,Dbcc,以下是我的功能: private static void checkDatabase(String dbName, String password) { try{ Connection con=DriverManager.getConnection( "jdbc:sqlserver://localhost;database="+dbName+ ";user=SA;password=" +passwor
private static void checkDatabase(String dbName, String password) {
try{
Connection con=DriverManager.getConnection(
"jdbc:sqlserver://localhost;database="+dbName+ ";user=SA;password=" +password);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("DBCC CHECKDB;");
while(rs.next()){
System.out.println( //TODO );
}
con.close();
}catch(Exception e){ System.out.println(e);}
}
com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
为什么DBCC CHECK DB不能与executeQuery()一起使用?我如何修复它
DBCC CHECKDB
默认情况下将结果作为消息而不是结果集返回。指定TABLERESULTS
选项(DBCC CHECKDB WITH TABLERESULTS;
),以便将结果作为行而不是消息返回
或者,您可以使用execute
方法代替executeQuery
,并使用getWarnings
获取返回的消息:
stmt.execute("DBCC CHECKDB;");
SQLWarning w = stmt.getWarnings();
while(w != null) {
System.out.println(w.getMessage());
w = w.getNextWarning();
}
默认情况下,DBCC CHECKDB将结果作为消息而不是结果集返回。指定
TABLERESULTS
选项(DBCC CHECKDB WITH TABLERESULTS;
)或使用不返回结果集的方法执行查询。谢谢。这对我有很大帮助