web-dev-qa-db-fra.com

Se connecter à LocalDB via SQLCMD dans PowerShell

J'essaie d'accéder au serveur "localdb\MSSQLLocalDB" sur mon ordinateur via PowerShell avec l'utilitaire SQLCMD. J'utilise PowerShell v5, .NET v5.0 et le nom du serveur est (localdb)\MSSQLLocalDB lorsque je m'y connecte dans Microsoft SQL Server Management Studio 2014.

PS C:\> sqlcmd -S localdb\MSSQLLocalDB et PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB entraîne cette erreur:

Sqlcmd: erreur: Microsoft ODBC pilote 11 pour SQL Server: interfaces réseau SQL Server: erreur de localisation du serveur/de l'instance spécifiée [xFFFFFFFF].

J'ai demandé le nom du serveur dans Management Studio avec SELECT @@ServerName et utilisé cela après le -S dans la commande ci-dessus et a obtenu la même erreur.

PS C:\> sqlcmd -S localdb donne cette erreur:

Sqlcmd: erreur: Microsoft ODBC pilote 11 pour SQL Server: fournisseur de canaux nommés: impossible d'ouvrir une connexion à SQL Server [53]

Autres notes: je peux me connecter au serveur et travailler avec une base de données nommée testdb01 dans une application console C # en utilisant System.Data.SqlClient avec cette chaîne de connexion:

"Data Source=(localdb)\\mssqllocaldb;Initial Catalog=testdb01;Integrated Security=SSPI;"
10
jmk22

La casse du nom d'instance n'a pas d'importance.

Vous devez essayer:

sqlcmd -S "(localdb)\MSSQLLocalDB" -d testdb01

La partie "localdb" doit être placée entre parenthèses car il s'agit d'une syntaxe spéciale qui pointe vers une API spécifique à SQL Server Express LocalDB qui permet le démarrage automatique de l'instance lors du référencement dans une chaîne de connexion. Le nom complet de l'instance doit être placé entre guillemets doubles. La ligne de commande ci-dessus fonctionne pour moi, au moins en dehors de PowerShell.

8
Solomon Rutzky