J'utilise le pilote jTDS dans une application Java. L'administrateur de base de données m'a dit que le nom d'instance SQL Server est
MSSQL-DB09v1\v1
Comment dois-je écrire l'URL de connexion?
J'ai utilisé quelque chose comme
jdbc:jtds:sqlserver://server-name/database_name
pendant un certain temps et cela fonctionne bien, mais vous ne connaissez pas la bonne chaîne de connexion lorsque le nom de l'instance contient une barre oblique inversée.
A fait des recherches et des tests. La chaîne d'URL de connexion correcte a été trouvée dans ce cas:
jdbc:jtds:sqlserver://server-name/database_name;instance=instance_name
Dans mon cas, la chaîne de connexion est:
jdbc:jtds:sqlserver://server-name/MSSQL-DB09v1;instance=v1
J'ai eu un cas similaire où mon DBA m'a donné une base de données sur un serveur avec la connexion suivante: {SERVER_NAME}\{INSTANCE}
. Cette syntaxe fonctionnait lors de la connexion au serveur et à l'instance à l'aide de SSMS, mais ne fonctionnait pas lors de la connexion via le pilote Java.
Au lieu de cela, la syntaxe suivante a fonctionné pour moi:
jdbc:jtds:sqlserver://{SERVER_NAME};databaseName={DATABASE_NAME);instance={INSTANCE}
Notez que je devais déplacer l'instance vers un paramètre de chaîne de connexion. Une fois que j'ai fait cela, tout a bien fonctionné.
Pour référence, voir ce JTDS spécifique FAQ .
-Votre base de données serait en cours d'exécution sur un schéma "dbo".
-Alors, vous devez vous assurer que vous établissez une connexion pour répondre à une requête de manière à ce que le schéma dbo traite votre requête (lorsque vous utilisez la fonction getConnection ())
-Vous pouvez le faire en ajoutant le nom de votre base de données devant le nom du serveur dans la chaîne de connexion. comme ci-dessous
ConnectionUrl="jdbc:jtds:sqlserver://**yourservername:1433/yourdatabase**;database=yourdatabse;user=username;password=password;encrypt=false;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";
au lieu de
ConnectionUrl="jdbc:jtds:sqlserver://**yourservername:1433**;database=yourdatabse;user=username;password=password;encrypt=false;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;";