2016-06-16 82 views
1

Ich habe ein Problem mit SQLPS-Befehle ausführen, eine DB auf Windows Server 2012R2 und Powershell v4Ausnahme beim Aufruf von ".ctor" mit "2" Argument (en): "SetParent fehlgeschlagen für Datenbank 'XXX'."

#Import SQL Server Module called SQLPS 
Import-Module SQLPS -DisableNameChecking 

#Your SQL Server Instance Name 
$Inst = "sql03" 
$Srvr = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $Inst 

#database PSDB with default settings 
#by assuming that this database does not yet exist in current instance 
$DBName = "PSDB" 
$db = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Database($Srvr, $DBName) 
$db.Create() 

#Confirm, list databases in your current instance 
$Srvr.Databases | 
Select Name, Status, Owner, CreateDate 

Ich erhalte die folgenden Fehler zu erzeugen:

New-Object : Exception calling ".ctor" with "2" argument(s): "SetParent failed for Database 'PSDB'. " 
At C:\test.ps1:11 char:7 
+ $db = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Database($Srvr, $D ... 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [New-Object], MethodInvocationException 
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand 

You cannot call a method on a null-valued expression. 
At C:\test.ps1:12 char:1 
+ $db.Create() 
+ ~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
    + FullyQualifiedErrorId : InvokeMethodOnNull 

The following exception occurred while trying to enumerate the collection: "Failed to connect to server sql03.". 
At C:\test.ps1:15 char:1 
+ $Srvr.Databases | 
+ ~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], ExtendedTypeSystemException 
    + FullyQualifiedErrorId : ExceptionInGetEnumerator 

Irgendwelche Vorschläge, wie dies zu beheben?

+1

Haben Sie die richtige Instanz Name? D. h. Versuchen Sie, auf die Standardinstanz von SQL03 zuzugreifen? Ich denke, dass "Fehler beim Verbinden mit Server sql03." ist, wo das Problem – grambo25

+0

ist Ich führe den Befehl von SQL03 selbst – MSalem

+0

Sie können mehrere Instanzen von SQL Server auf dem gleichen Windows Server ausgeführt haben. Wenn Sie versuchen, über SSMS eine Verbindung zu Ihrem SQL Server herzustellen, was befindet sich im Feld Servername? – grambo25

Antwort

0

Wenn Sie arbeiten vor Ort versuchen, zu ersetzen:

$Srvr = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $Inst 

mit:

$Srvr = new-object ('Microsoft.SqlServer.Management.Smo.Server') localhost 
Verwandte Themen