我尝试使用Microsoft.SqlServer.SMO在powershell中设置数据库名称。当我执行我的脚本时,它运行错误,出现以下错误文本:
format-default : Index was outside the bounds of the array.
+ CategoryInfo : NotSpecified: (:) [format-default], IndexOutOfRangeException
+ FullyQualifiedErrorId : System.IndexOutOfRangeException,Microsoft.PowerShell.Commands.FormatDefaultCommand
服务器设置如下
$srv = New-Object "Microsoft.SqlServer.Management.SMO.Server" $server
$srv.ConnectionContext.LoginSecure=$false;
$srv.ConnectionContext.set_Login("login");
$srv.ConnectionContext.set_Password("password")
$srv.Databases | Select name
,
向我展示了正确的数据库,但在设置数据库时,
$db = $srv.Databases[$database]
抛出错误。
此脚本在其他sqlservers中有效。 针对这个问题的任何解决方案?
答案 0 :(得分:0)
看起来脚本抛出错误的服务器上不存在数据库“CRD_DEV”。 那个或用户无权访问该数据库。
IndexOutOfRangeException
被抛出,因为$srv.Databases
中没有与“CRD_DEV”匹配的项目