【发布时间】:2013-01-19 08:41:52
【问题描述】:
你好 StackOverflow 社区 :)
我来找你分享我的一个问题......
我必须提取一个SQL Server 实例的每个数据库中每个表的列表,我找到了这个查询:
EXEC sp_msforeachdb 'Use ?; SELECT DB_NAME() AS DB, * FROM sys.tables'
它在 Microsoft SQL Server Management Studio 上完美运行,但是当我尝试在我的 Java 程序(包括 SQL Server 的 JDBC 驱动程序)中执行它时,它说它不返回任何结果。
我的 Java 代码如下:
this.statement = this.connect.createStatement(); // Create the statement
this.resultats = this.statement.executeQuery("EXEC sp_msforeachdb 'Use ?; SELECT DB_NAME() AS DB, * FROM sys.tables'"); // Execute the query and store results in a ResultSet
this.sortie.ecrireResultats(this.statement.getResultSet()); // Write the ResultSet to a file
感谢任何愿意帮助我的人, 祝你有美好的一天:)
编辑 1:
我不确定 SQL Server 的 JDBC 驱动程序是否支持我的查询,所以我将尝试以另一种方式实现我的目标。
我想要得到的是SQL Server 实例上每个数据库的所有表的列表,输出格式如下:
+-----------+--------+
| Databases | Tables |
+-----------+--------+
所以现在我问有人可以帮助我获得该解决方案通过 Java 的 JDBC for SQL Server 驱动程序使用 SQL 查询。
我还要感谢 Tim Lehner 和 Mark Rotteveel 的快速答复。
【问题讨论】:
标签: java sql-server stored-procedures jdbc sp-msforeachdb