Functions/function-Test-Database.ps1

function Test-Database
{
 <#
  .SYNOPSIS
    Run a DBCC check
  .DESCRIPTION
    Run a DBCC CHECKDB against a specified database on a specified SQL Server instance.
 
    If all is OK, returns True, or returns messages if set to Verbose
    Returns False and all errors if there's a problem
  .EXAMPLE
    Test-Database -RestoreSQLServer $sqlsvr -DatabaseName 'ExampleDB'
  .PARAMETER RestoreSQLSever
    An SMO SQL Server Connection object
  .PARAMETER DatabaseName
    Name of database to be tested, as String.
 
  #>

  [CmdletBinding()]
  param
  (
    [Parameter(Mandatory=$True)]
    [string]$DatabaseName,
    [Parameter(Mandatory=$True)]
    [Microsoft.SQLServer.Management.Smo.Server]$RestoreSQLServer
  )
  Write-Verbose "Test-Database - Entering " 
  $results = @()
  $errorout = ''
  $err = 0
  try
  {
    $results = Invoke-SQLCmd -ServerInstance $RestoreSQLServer.Name -Query "DBCC CHECKDB ($DatabaseName) with TABLERESULTS" -ErrorAction Stop -QueryTimeout 0
  }
  catch  
    {
        $errorout = $_
        $err=1
    }
  finally
    {
        if ($err -eq 0){
            $results | out-string -Stream | Write-Verbose
            $errorout | out-string -Stream | Write-Verbose
            $True
        }else{
            $results | out-string -Stream
            $errorout | out-string -Stream
            $False
        }
         Write-Verbose "Test-Database - Leaving " 
    }
}