public/Ping-SqlDatabase.ps1

function Ping-SqlDatabase {
    <#
    .SYNOPSIS
           Checks that the database exists on the SQL Server
    #>

    [OutputType([Boolean])]
    [CmdletBinding()]
    param
    (
        [String] [Parameter(Mandatory = $true)]
        $ServerName,

        [String] [Parameter(Mandatory = $true)]
        $DatabaseName
    )

    if ($ServerName -eq $null -or $ServerName -eq "") {
        return $false;
    }

    try {
        [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null;
        $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $ServerName;

        $database = $server.Databases["master"];
        if ($database.Name -eq "master") {
            # SQL Server instance exists, so check if the database exists
            $database = $server.Databases[$DatabaseName];
            if ($database.Name -eq $DatabaseName) {
                return $true;
            }
            else {
                return $false;
            }
        }
        else {
            return $false;
        }
    }
    catch {
        Write-Warning "Error $_";
        return $false;
    }
}