2015-05-04 55 views
-1

如何列出我机器上已知实例中的所有SQL Server数据库?使用Java查找实例中的所有SQL Server数据库

+1

类似的线程,而不是Java具体,但它可以帮助http://stackoverflow.com/questions/3570738/如何在本地机器上获取所有这些ms-sql-server-instances列表 – bpgergo

+0

感谢您的链接,但它重申列出SQL Server实例。当然是一个好的开始,但我需要列出SQL Server数据库(假设我知道SQL Server实例)。 – Benjamin

+1

啊,好吧,他们可能想要执行以下查询:'SELECT name,database_id,create_date FROM sys.databases'https://msdn.microsoft.com/en-us/library/ms188613.aspx – bpgergo

回答

3

您可以从JDBC与DatabaseMetaData#getCatalog()尝试(与MS SQLServerDriver和JTDS驱动程序的工作原理):

import java.sql.*; 
public class ListDatabases 
{ 
    public static void main(String [] args) 
    { 
    Connection con = null; 
    try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     con = DriverManager.getConnection("jdbc:sqlserver://localhost:1269;" 
       + "user=sa;password=HerongYang"); 

     DatabaseMetaData meta = con.getMetaData(); 
     ResultSet res = meta.getCatalogs(); 
     System.out.println("List of databases: "); 
     while (res.next()) { 
      System.out.println(res.getString("TABLE_CAT")); 
     } 
     res.close(); 
    } catch (Exception e) { 
     System.err.println("Exception: " + e); 
    } finally { 
     con.close(); 
    } 
    } 
} 
相关问题