2017-01-19 2 views
2

Ich bin neu in SQL und versuche, eine Azure SQL-Datenbank (Adventureworks-Beispiel) mit der Invoke-SQLCmd von PowerShell abzufragen.Azure SQL: Ungültiger Objektname mit Powershells "Invoke-sqlcmd" in Adventureworks

Wenn ich versuche, den folgenden Befehl in Powershell:

Invoke-Sqlcmd -Query "SELECT * FROM SalesLT.Customer;" -ServerInstance 
"<servername>.database.windows.net" -Username <username> -Password <password> 

ich:

Invoke-Sqlcmd : Invalid object name 'SalesLT.Customer'. 

Muss ich angeben müssen, welche Datenbank die Tabelle unter ist? Nämlich, "SQLDatabase" statt "Master"? Aber wenn ich Use SQLDatabase zu meiner Anfrage hinzufügen wirft es einen weiteren Fehler:

USE statement is not supported to switch between databases. Use a new  
connection to connect to a different database. 

Hinweis: Ausführen dieser Abfragen von SQL Server Management Studio wird mir die Tabelle ohne Fehler.

Danke!

Antwort

2

eine -Database [dbname] den Befehlsparameter hinzufügen:

Invoke-Sqlcmd -Query "SELECT * FROM SalesLT.Customer;" 
    -ServerInstance "<servername>.database.windows.net" 
    -Username <username> -Password <password> -Database <dbname> 

https://msdn.microsoft.com/en-us/library/cc281720.aspx

+0

Danke Herr, dass es war. – AllTradesJack

+0

Kein Problem. Ich habe es noch nie benutzt, aber jedes Mal, wenn Sie eine Verbindung zu einem Server herstellen, benötigt es einen Verweis auf die Datenbank und ein kurzer Blick auf die Dokumentation zeigt den Parameter (Server können mehrere Datenbanken haben und tun dies standardmäßig) . – jleach

Verwandte Themen