2014-06-10 20 views
9

Yerel bilgisayarımda .\SC adlı bir SQL Server örneğim var. Bir PowerShell betiği kullanarak bu örnekten bir veritabanı bırakmak istiyorum. Veritabanım için sa kullanıcı ile giriş yapmam gerekiyor. SQL Server veritabanını powershell'den düşürün

Bu

var bugüne kadar kod, ancak çalışmıyor: Son satır benim SQL örneği veritabanlarını listelemek gerekiyordu

[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 

Bu ... ama bana bu hata veriyor:

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

Neyi yanlış yapıyorum?

+0

başarısız oturum açma girişimlerinin SQL günlükleri kontrol ettiniz mi? Bunun başarısız olması durumunda, $ error [0] 'i çalıştırdıktan hemen sonra yerel bir değişkene saklayın ve root nedenine ulaşıncaya kadar Exception ve InnerException olsun. Veritabanı yoksa –

cevap

11

Bunu yapmak için farklı bir komut buldum. Bu sadece oldu: komut için

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

başarısız olur – liang

0

ihtiyacınız yukarıdaki:

import-module sqlps