Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Kevin-Bronsdijk/72eb514ddac70758144e to your computer and use it in GitHub Desktop.
Save Kevin-Bronsdijk/72eb514ddac70758144e to your computer and use it in GitHub Desktop.
database-integrity-history-reports
Import-Module SQLPS -DisableNameChecking
#replace this with your instance name
$instanceName = "Server\Instance"
$server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName
$server.ConnectionContext.ConnectTimeout = 2200
$server.ConnectionContext.StatementTimeout = 2200
#store results
$results = @()
#for all databases
$databases = $server.Databases
#just a single database
#$databaseName = "dbname"
#$databases = $server.Databases[$databasename]
...
$statement = 'CheckCatalog'
# CheckCatalog SQL server 2012
$database.CheckCatalog()
# CheckCatalog pre 2012
#$database.CheckCatalog([Microsoft.SqlServer.Management.Smo.RepairType]::None)
$statement = 'CheckAllocations'
$database.CheckAllocations([Microsoft.SqlServer.Management.Smo.RepairType]::None)
$statement = 'CheckTables'
$database.CheckTables([Microsoft.SqlServer.Management.Smo.RepairType]::None)
...
Import-Module SQLPS
#replace this with your instance name
$instanceName = "Server\Instance"
$server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName
$server.ConnectionContext.ConnectTimeout = 2200
$server.ConnectionContext.StatementTimeout = 2200
#store results
$results = @()
#for all databases
$databases = $server.Databases
#just a single database
#$databaseName = "dbname"
#$databases = $server.Databases[$databasename]
foreach ($database in $databases) {
$exception = 'x'
$statement
$name = $database.Name
Try
{
$statement = 'CheckCatalog'
# CheckCatalog SQL server 2012
$database.CheckCatalog()
# CheckCatalog pre 2012
#$database.CheckCatalog([Microsoft.SqlServer.Management.Smo.RepairType]::None)
$statement = 'CheckAllocations'
$database.CheckAllocations([Microsoft.SqlServer.Management.Smo.RepairType]::None)
$statement = 'CheckTables'
$database.CheckTables([Microsoft.SqlServer.Management.Smo.RepairType]::None)
}
Catch
{
$err = $_.Exception
while ( $err.InnerException )
{
$err = $err.InnerException
};
$exception = $err.Message
}
$prop = @{
'Database'= $name
'Exception'=$exception
'Statement'=$statement
'Date'=Get-Date
}
$result = New-Object -TypeName PSObject -Property $prop
$results = $results + $result
}
$results | Format-List | out-file C:\\Report.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment