Chute de base de données SQL Server à partir de powershell
J'ai une instance de SQL Server sur mon ordinateur local appelé .\SC
. Je veux supprimer une base de données à partir de cette instance à l'aide d'un script PowerShell. J'ai besoin de me connecter avec le sa
utilisateur pour ma base de données.
C'est le code que j'ai à ce jour, mais il ne fonctionne pas:
[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
Que la dernière ligne est censé liste les bases de données my SQL exemple... mais il me donne cette erreur:
L'exception suivante s'est produite lors de la tentative d'énumérer les
collection: "impossible de se connecter au serveur .\SC.". Au niveau de ligne:1
char:1
+ $srv2.Les bases de données
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : ExceptionInGetEnumerator
Ce que je fais mal?
$error[0]
dans une variable locale à droite après l'exécution de cette et obtenir de l'Exception et InnerException jusqu'à ce que vous atteignez la cause racine.
OriginalL'auteur user952342 | 2014-06-10
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une autre commande pour le faire. C'était tout simplement:
OriginalL'auteur user952342
pour la commande ci-dessus, vous devez:
OriginalL'auteur Lejma
Avec toute la préparation que vous avez, vous semblez oublier à fait se connecter au serveur. Notez que l'exemple ci-dessous appels
ConnectionContext.Connect()
.Si vous voulez vérifier si votre base de données existe (comme liang a souligné), vous pouvez modifier la dernière ligne avec:
et de vérifier si les
$db
a une valeur.OriginalL'auteur Gambit
J'utilise la suite:
$sqlserver = '<enter sql server here>'
$database = '<enter db name here>'
De cette façon, vous pouvez la transformer en une fonction, si nécessaire, avec des variables, et si elle échoue, elle vous dit, mais se déplace avec le reste du script, il est en.
OriginalL'auteur Adrian Coles