2014-06-10 7 views
9

Ho un'istanza di SQL Server sul mio computer locale chiamato .\SC. Voglio rilasciare un database da tale istanza usando uno script PowerShell. Devo accedere con l'utente sa per il mio database.Elimina database SQL Server da PowerShell

Questo è il codice che ho finora, ma non funziona:

[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 

Quella ultima linea dovrebbe elencare i database in mia istanza di SQL ... ma mi dà questo errore:

The following exception occurred while trying to enumerate the collection: "Failed to connect to server .\SC.". At line:1 char:1 + $srv2.Databases + ~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException + FullyQualifiedErrorId : ExceptionInGetEnumerator

Cosa sto facendo male?

+0

Avete controllato i log di SQL per i tentativi di accesso non riusciti? In caso contrario, memorizzare '$ errore [0]' in una variabile locale subito dopo aver eseguito questa operazione e ottenere Exception e InnerException finché non si raggiunge la causa principale. –

risposta

11

Ho trovato un comando diverso per farlo. Era semplicemente:

invoke-sqlcmd -ServerInstance ".\SC" -U "sa" -P "MyPlainTextPass" -Query "Drop database MyDatabase;" 
+0

questo fallirebbe se il database non esiste – liang

0

per comando sopra è necessario:

import-module sqlps