it-swarm.com.de

Stellen Sie über SQLCMD in PowerShell eine Verbindung zu LocalDB her

Ich versuche, über PowerShell mit dem Dienstprogramm SQLCMD auf den Server "localdb\MSSQLLocalDB" auf meinem Computer zuzugreifen. Ich verwende PowerShell v5, .NET v5.0 und der Servername lautet (localdb)\MSSQLLocalDB, Wenn ich in Microsoft SQL Server Management Studio 2014 eine Verbindung dazu herstelle.

PS C:\> sqlcmd -S localdb\MSSQLLocalDB Und PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB Führen zu folgendem Fehler:

SQLqd: Fehler: Microsoft ODBC Treiber 11 für SQL Server: SQL Server-Netzwerkschnittstellen: Fehler beim Auffinden des angegebenen Servers/der angegebenen Instanz [xFFFFFFFF].

Ich habe den Servernamen in Management Studio mit SELECT @@ServerName Abgefragt und diesen nach -S Im obigen Befehl verwendet und den gleichen Fehler erhalten.

PS C:\> sqlcmd -S localdb Gibt diesen Fehler aus:

SQLqd: Fehler: Microsoft ODBC Treiber 11 für SQL Server: Named Pipes-Anbieter: Verbindung zu SQL Server konnte nicht hergestellt werden [53]

Weitere Hinweise: Ich kann eine Verbindung zum Server herstellen und mit einer Datenbank namens testdb01 in einer C # -Konsolen-App mit System.Data.SqlClient Mit dieser Verbindungszeichenfolge arbeiten:

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

Das Gehäuse des Instanznamens spielt keine Rolle.

Sie müssen versuchen:

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

Der Teil "localdb" muss in Klammern eingeschlossen werden, da dies eine spezielle Syntax ist, die auf eine SQL Server Express LocalDB-spezifische API verweist, die einen automatischen Start der Instanz ermöglicht, wenn in einer Verbindungszeichenfolge verwiesen wird. Der gesamte Instanzname muss in doppelte Anführungszeichen gesetzt werden. Die oben gezeigte Befehlszeile funktioniert für mich zumindest außerhalb von PowerShell.

8
Solomon Rutzky