【问题标题】:Exception calling ".ctor" with "2" argument(s): "SetParent failed for Database 'XXX' ."使用“2”参数调用“.ctor”的异常:“SetParent failed for Database 'XXX'。”
【发布时间】:2016-10-18 10:30:08
【问题描述】:

我在运行 SQLPS 命令以在 Windows Server 2012R2 和 Powershell v4 上创建数据库时遇到问题

#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

我收到以下错误:

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

有什么建议可以解决这个问题吗?

【问题讨论】:

  • 您的实例名称是否正确?即,您是否尝试访问 SQL03 上的默认实例?我认为“无法连接到服务器 sql03”。问题出在哪里
  • 我正在从 SQL03 本身运行命令
  • 您可以在同一个 Windows Server 上运行多个 SQL Server 实例。如果您尝试通过 SSMS 连接到 SQL Server,Server Name 字段中的内容是什么?
  • 只有一个实例“MSSQLSERVER”
  • 您找到解决方案了吗?我遇到了同样的错误

标签: sql-server database powershell sqlps


【解决方案1】:

如果您在本地工作,请尝试更换:

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

与:

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

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多