sql-server - Azure/Powershell : Checking to see if a SQL Server exists

标签 sql-server powershell azure

我有 C# 背景,这是我第一次尝试 Powershell。我正在尝试编写一个 Powershell 脚本,该脚本可以在 Azure 中执行大量操作,其中包括:

  • 检查 SQL Server 实例是否存在
    • 如果没有,请创建一个服务器(使用 New-AzureRmSqlServer)
  • 在服务器上创建新数据库
  • ...以及其他一些东西

我的第一个问题是,如果服务器已经存在,我不需要创建它;我可以直接进入数据库创建。但是,我似乎无法做到这一点。

我尝试了Get-AzureRmSqlServer,但如果找不到我正在查找的服务器,则会出错。最后,我使用此函数如果找到则返回 $true ,如果没有则返回 $false :

function Check-For-Server
{
    Param(
        [Parameter(Mandatory=$true)]
        [String]
        $ServerName
    )

    if (Test-AzureName -Name $ServerName)
    {
        return $false
    }
    else
    {
        return $true
    }
}

问题是:我收到以下错误:

Test-AzureName : Parameter set cannot be resolved using the specified named parameters.
At C:\src\Powershell\test.ps1:10 char:9
+ if (Test-AzureName -Name $ServerName)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Test-AzureName], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.WindowsAzure.Commands.CloudService.TestAzureNameCommand

有人知道如何解决这个问题吗? Google 绝对没有提供任何帮助,至少就 Test-AzureName 而言,此特定错误消息是这样。我想尝试 -Service/ServiceBusName/Storage/Website 参数之一,但我不确定哪一个在这里适用。或者,即使它是相关的 - 错误消息似乎并不表明我实际上缺少一个参数,只是我提供的参数有些糟糕。

哦,如果有帮助的话,这里是对 Check-For-Server 的调用:

$sqlServerName = "test_db_server"
Check-For-Server -ServerName $sqlServerName

谢谢!

最佳答案

$serverInstance = Get-AzureRmSqlServer -ServerName $serverName -ResourceGroupName $resourceGroupname -ErrorAction SilentlyContinue
if ($serverInstance) { do stuff }
else { do other stuff }

关于sql-server - Azure/Powershell : Checking to see if a SQL Server exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537479/

相关文章:

azure - 了解微软Azure云

azure - Azure 中的交叉订阅专用终结点

sql-server - SQL Server 2008 中的枚举类型?

以独立于文化的方式进行 Powershell 格式化?!对于数字

正则表达式使用 powershell 删除 "\"前面的内容

powershell - 消除启动时的Powershell错误

android - 通过 Azure 通知中心上的 GCM 发送高优先级消息

sql-server - 存储总数或即时计算?

mysql - 将 Float 转换为 Double 会给出错误的值

java - hibernate 和 SQL Server : Timestamp format must be yyyy-mm-dd hh:mm:ss