2014-06-10 17 views
9

Mam wystąpienie programu SQL Server na moim komputerze lokalnym o nazwie .\SC. Chcę usunąć bazę danych z tej instancji za pomocą skryptu PowerShell. Muszę zalogować się z użytkownikiem sa dla mojej bazy danych.Upuść bazę danych SQL Server z powershell

Jest to kod mam tak daleko, ale to nie działa:

[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 

Ta ostatnia linia ma listy baz danych SQL w moim przypadku ... ale to daje mi ten błąd:

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

Co robię źle?

+0

Czy można sprawdzić swoje logi SQL dla nieudanych prób logowania? W przeciwnym razie przechowuj '$ error [0]' w zmiennej lokalnej zaraz po uruchomieniu tego i uzyskaj wyjątek i wyjątek InnerException, aż dojdziesz do głównej przyczyny. –

Odpowiedz

11

Znalazłem inne polecenie, aby to zrobić. To było po prostu:

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

to zawiedzie, jeśli baza danych nie istnieje – liang

0

do komendy powyżej trzeba:

import-module sqlps 
Powiązane problemy