2014-10-07 65 views
2

有沒有使用JDBC實現來識別SQL Server版本的方法?我特別想識別2008年和2012年。使用JDBC識別SQL Server版本

動機:2008不支持OFFSET,但2012年。所以,我需要在我的應用程序中添加條件代碼來適當地修改SQL查詢。

+0

我相信我在這裏找到了答案http://stackoverflow.com/questions/18753886/sql-server-file-names-vs-versions。 -Thanks – MAmateur 2014-10-07 10:04:14

+0

'DatabaseMetaData.getDatabaseMajorVersion()'''DatabaseMetaData.getDatabaseMinorVersion()' – 2014-10-07 10:27:36

回答

3
import java.sql.*; 
/** 
    * Microsoft SQL Server JDBC test program 
    */ 
public class Test { 
    public Test() throws Exception { 
    // Get connection 
    DriverManager.registerDriver(new 
    com.microsoft.jdbc.sqlserver.SQLServerDriver()); 
    Connection connection = DriverManager.getConnection(
    "jdbc:microsoft:sqlserver://<Host>:1433",<"UID>","<PWD>"); 
    if (connection != null) { 
    System.out.println(); 
     System.out.println("Successfully connected"); 
     System.out.println(); 
     // Meta data 
     DatabaseMetaData meta = connection.getMetaData(); 
     System.out.println("\nDriver Information"); 
     System.out.println("Driver Name: " 
     + meta.getDriverName()); 
     System.out.println("Driver Version: " 
     + meta.getDriverVersion()); 
     System.out.println("\nDatabase Information "); 
     System.out.println("Database Name: " 
     + meta.getDatabaseProductName()); 
     System.out.println("Database Version: "+ 
     meta.getDatabaseProductVersion()); 
    } 
} // Test 
public static void main (String args[]) throws Exception { 
    Test test = new Test(); 
} 
} 

編譯

編譯Java源:Test.java(全部在同一行):

$ javac -classpath ".;./lib/mssqlserver.jar; 
    ./lib/msbase.jar;./lib/msutil.jar" Test.java 

請注意,您需要在您的計算機或媒體訪問javac的程序。如果不是,只需指定javac之前的完整路徑。上述命令適用於Java 2.如果您正在使用Java 1.1.8,請將JDK的classes.zip添加到類路徑中。在Unix系統上用冒號「;」替換分號:「」正斜槓「/」適用於兩種平臺,在Windows上使用反斜槓「\」不是必須的。

運行它

到編譯類似,你可以像這樣(再次全部在一行中)運行:

$ java -classpath ".;./lib/mssqlserver.jar; 
    ./lib/msbase.jar;./lib/msutil.jar" Test 

輸出看起來是這樣的:

Successfully connected 

Driver Information 
    Driver Name: SQLServer 
    Driver Version: 2.2.0022 

Database Information 
    Database Name: Microsoft SQL Server Database Version: 
    Microsoft SQL Server 2000 8.00.194 (Intel X86) 
    Aug 6 2000 00:57:48 
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 
    (Build 2195: Service Pack 2)