Drop-SQL-Server-Datenbank von powershell
Ich habe eine SQL Server-Instanz auf meinem lokalen computer aufgerufen .\SC
. Ich will zum löschen einer Datenbank von der Instanz mithilfe von einem PowerShell-Skript. Ich brauche die Anmeldung mit der sa
Benutzer meiner Datenbank.
Dies ist der code, den ich bisher, aber es funktioniert nicht:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$srv = new-object Microsoft.SqlServer.Management.Smo.Server(".\SC")
$conContext = $srv.ConnectionContext
$conContext.LoginSecure = $FALSE
$conContext.Login = "sa"
$conContext.Password = "MyPlainTextPass"
$srv2 = new-object Microsoft.SqlServer.Management.Smo.Server($conContext)
$srv2.Databases
Letzten Zeile soll die Liste der Datenbanken, die in meinem SQL-Instanz... aber es gibt mir diese Fehlermeldung:
Die folgende Ausnahme ist aufgetreten, während versucht, auflisten der
Sammlung: "Failed to connect to server .\SC.". Bei Zeile:1
char:1
+ $srv2.Datenbanken
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : ExceptionInGetEnumerator
Was mache ich falsch?
- Haben Sie überprüft Ihre SQL-Protokolle für fehlgeschlagene login-versuche? Andernfalls, speichern
$error[0]
in eine lokale variable nach dem ausführen dieses und bekommen Sie die Ausnahme und die InnerException, bis Sie die Ursache.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich einen anderen Befehl, dies zu tun. Es war einfach:
für obigen Befehls benötigen Sie:
Mit all den Vorbereitungen, die Sie haben, Sie scheinen zu vergessen, um tatsächlich eine Verbindung zum server herstellen. Beachten Sie, dass das folgende Beispiel ruft
ConnectionContext.Connect()
.Wenn Sie möchten, um zu überprüfen, ob die Datenbank vorhanden ist (wie liang wies darauf hin), können Sie ändern Sie die Letzte Zeile mit:
und überprüfen Sie, ob
$db
hat einen Wert.Benutze ich folgende:
$sqlserver = '<enter sql server here>'
$database = '<enter db name here>'
Diese Weise können Sie schalten Sie ihn in einer Funktion, wenn nötig, mit Variablen, und wenn es scheitert es Ihnen sagt, sondern bewegt sich mit dem rest des Skripts ist es in.