Comment spécifier un numéro de port dans la chaîne de connexion SQL Server?

139

J'utilise la chaîne de connexion suivante dans SQL Server Management Studio. Il n'a pas réussi à se connecter:

mycomputer.test.xxx.com:1234\myInstance1

Mais le suivant est ok:

mycomputer.test.xxx.com\myInstance1

Alors, comment spécifier un numéro de port dans une chaîne de connexion?

smwikipedia
la source
2
Lié à stackoverflow.com/q/89576
binki

Réponses:

260

Utilisez une virgule pour spécifier un numéro de port avec SQL Server:

mycomputer.test.xxx.com,1234

Il n'est pas nécessaire de spécifier un nom d'instance lors de la spécification du port.

Beaucoup plus d'exemples sur http://www.connectionstrings.com/ . Cela m'a sauvé plusieurs fois.

Michael Petrotta
la source
6
Chaque instance doit être sur un port distinct, donc port = instance dans le serveur Sql. Je n'ai jamais connu ce ", port" jusqu'à maintenant, cependant - merci.
Daniel Williams
1
@Daniel: oui, vous devez spécifier le port ou l'instance.
Michael Petrotta
8
Remarque: le nom de l'instance est ignoré lorsque le port est spécifié. Donc "mycomputer.test.xxx.com \ AnyOldRubbish, 1234" fonctionne toujours.
gbn
69
J'ai juste perdu presque une journée entière à essayer de comprendre cela. Quelqu'un chez Microsoft devrait être abattu pour cela. Non seulement ils prennent sur eux de créer une toute nouvelle convention pour délimiter une adresse de port (ils ne pouvaient pas simplement utiliser un deux-points comme le reste du monde), mais ils ne pouvaient pas être dérangés de le tester en SQL Server Management Studio afin que vous ayez une sorte d'indication sur ce qui se passe.
PrgTrdr
1
Comment cela fonctionne-t-il si l'instance par défaut (MSSQLSERVER) ne fonctionne pas sur 1433?
Mark Richman
12

Pour JDBC, le format approprié est légèrement différent et comme suit:

jdbc:microsoft:sqlserver://mycomputer.test.xxx.com:49843

Notez les deux points au lieu de la virgule.

Shane
la source
1
Je suis passé de C # à Java, et cette réponse me sauve. Encore.
smwikipedia
1
Génial, heureux que cela ait aidé. Documentation pas exactement intuitive en Java pour la chaîne de connexion JDBC. Je ne sais pas non plus pourquoi c'est différent, ce qui est ennuyeux.
Shane
1

La chaîne de connexion SQL correcte pour SQL avec le port spécifié est d'utiliser une virgule entre l'adresse IP et le numéro de port comme le modèle suivant: xxx.xxx.xxx.xxx, yyyy

David Thang
la source
-2

Dans le nom du serveur lui-même, vous pouvez ajouter le numéro de port comme ceci

Server="servername:XXXXX"

Remplacez XXXXX par votre numéro de port.

Votre chaîne de connexion ressemblerait à celle ci-dessous

<connectionStrings>
    <add name="ConnectionStringSQL" 
         connectionString="server=servername:XXXXX;database=databasename;uid=XXX;pwd=XXXXXXX"
         providerName="System.Data.SqlClient" />
</connectionStrings>
GMB
la source
4
C # utilise une virgule entre le nom du serveur et le numéro de port, pas une virgule.
Dymas