Herstellen einer Verbindung mit SQL Server LocalDB mithilfe von Invoke-Sqlcmd?

8

Ich habe sqlcmd.exe von SQLServer 2008 und SQLServer 2012:

%Vor%

Durch die Änderung von $env:PATH erzwinge ich die Verwendung von sqlcmd.exe von SQL Server 2012:

%Vor%

Die Standardinstanz von LocalDB wird ausgeführt und gehört dem aktuellen Benutzer:

%Vor%

Jetzt kann ich den Befehl auf (localdb)\v11.0 mit sqlcmd.exe

ausführen %Vor%

Aber wenn ich das gleiche mit Invoke-Sqlcmd versuche, bekomme ich einen Verbindungsfehler:

%Vor%

Was kann ich tun, damit Invoke-Sqlcmd mit (localdb)\v11.0 verbunden wird?

    
Gian Marco Gherardi 13.06.2013, 08:42
quelle

4 Antworten

0

Bekam das aus ein paar anderen Quellen, scheint soweit zu funktionieren.

JBs Powershell

und

Wie kann ich PowerShell mit .NET ausführen? 4 Laufzeit?

Eine weitere Möglichkeit, PowerShell und LocalDB zu spielen, besteht darin, PowerShell auf DOTNET 4.0.3 aufmerksam zu machen. Dies kann durch Erstellen einer Datei namens "powershell.exe.config" in C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 erfolgen. Die Datei sollte Folgendes enthalten:

%Vor%

Beachten Sie, dass dies keine offiziell unterstützte Methode für die Verwendung von PowerShell ist, sodass es möglicherweise andere Probleme verursacht ...

    
user2681363 04.10.2013 20:58
quelle
0

Ich habe dies kürzlich bei der Arbeit gemacht und hatte einige anfängliche Probleme beim Verbinden mit einer lokalen Datenbank. Um es zum Laufen zu bringen, habe ich den folgenden Code ausgeführt:

%Vor%

Das hat für mich funktioniert und ich konnte die Datenbank abfragen. Offensichtlich ändern Sie die Details für Benutzername, Passwort und Datenbankparameter in den Namen Ihrer Datenbank in der SQL-Instanz.

    
Fredulom 12.09.2015 13:29
quelle
0

Dies ist Code, der für mich unter widrigen Bedingungen funktioniert (siehe meine Kommentare direkt nach dem Code). Ich vermute, dass einfacherer Code in einer allgemeineren Umgebung funktioniert, aber ich habe mich nicht damit beschäftigt.

Der Instanz-Pipe überschreitet nach einigen Minuten das Zeitlimit. Es ist besser, wenn Sie eine Verbindung mit (localdb) \ instanzname herstellen können, da diese Verbindungen scheinbar nicht ausgelaufen sind.

%Vor%

Aus Gründen, die derzeit außerhalb meiner Kontrolle liegen, ist die Ausführungsumgebung, in der diese ausgeführt wird, ungewöhnlich. Es handelt sich um eine Remote-Ausführungsumgebung mit einem unvollständigen Sitzungskontext. Außerdem musste ich USERPROFILE neu definieren, um einige andere Probleme zu umgehen.

[später bearbeiten: Ich habe kürzlich eine Möglichkeit gefunden, das Timeout zu verlängern - ich musste nach dem 2. eine RECONFIGURE hinzufügen sp_configure und (wie empfohlen) stoppen und starten Sie die localdb, damit sie wirksam wird]]

    
unbob 27.12.2016 22:10
quelle
-1

Ich vermute, dass invoke-sqlcmd nicht weiß, was "(localdb)" ist. Versuchen Sie stattdessen, localhost zu verwenden.

    
mrdenny 13.06.2013 09:49
quelle