2013-10-24 16 views
9

Ich verwende den jTDS-Treiber in einer Java-Anwendung. Der Datenbankadministrator hat mir gesagt, dass der SQL Server-InstanznamejTDS-Verbindungszeichenfolge: Verbinden mit einer MS SQL Server-Instanz mit einem Backslash

MSSQL-DB09v1\v1

ist Wie soll ich die Verbindung URL schreiben?

Ich habe etwas benutzen wie

jdbc:jtds:sqlserver://server-name/database_name 

seit einiger Zeit und es funktioniert gut, aber nicht wissen, die richtige Verbindungszeichenfolge, wenn der Instanzname einen Backslash enthält.

Antwort

22

Weitere Untersuchungen und Tests. Fand heraus, das richtige Verbindung URL-String ist in diesem Fall:

jdbc:jtds:sqlserver://server-name/database_name;instance=instance_name 

In meinem Fall die Verbindungszeichenfolge ist:

jdbc:jtds:sqlserver://server-name/MSSQL-DB09v1;instance=v1 

Siehe jTDSFAQs für weitere Details

+1

ich tat, danke. in meinem Fall war der Hostname wie dieser MSSQL-DB09v1 \ v1, Backslash. Die Flucht in Java funktionierte nicht. – thirdy

3

ich einen ähnlichen Fall hatte wo mein DBA gab mir eine Datenbank auf einem Server mit der folgenden Verbindung: {SERVER_NAME}\{INSTANCE}. Diese Syntax funktionierte beim Verbinden mit dem Server und der Instanz mithilfe von SSMS, funktionierte jedoch nicht, wenn eine Verbindung über den Java-Treiber hergestellt wurde.

Stattdessen wird die folgende Syntax für mich gearbeitet:

jdbc:jtds:sqlserver://{SERVER_NAME};databaseName={DATABASE_NAME);instance={INSTANCE}

Hinweis, die ich hatte, um die Instanz zu einer Verbindungszeichenfolge Parameter zu bewegen. Sobald ich das getan habe, hat alles gut funktioniert.

Zur Referenz siehe this specific JTDS FAQ.