---
title: "Get-DbaDbCheckConstraint"
description: "Gets database Check constraints."
url: "https://dbatools.io/Get-DbaDbCheckConstraint/"
availability: "Windows, Linux, macOS"
tags: ["Database"]
author: "Claudio Silva (@ClaudioESSilva), claudioessilva.eu"
source: "https://github.com/dataplat/dbatools/blob/master/public/Get-DbaDbCheckConstraint.ps1"
last_updated: "2024-01-01"
---

# Get-DbaDbCheckConstraint

## Synopsis

Gets database Check constraints.

## Description

Gets database Checks constraints.

## Syntax

```powershell
Get-DbaDbCheckConstraint
    [-SqlInstance] <DbaInstanceParameter[]>
    [[-SqlCredential] <PSCredential>]
    [[-Database] <Object[]>]
    [[-ExcludeDatabase] <Object[]>]
    [-ExcludeSystemTable]
    [-EnableException]
    [<CommonParameters>]

```

## Examples

### Example 1: Gets all database check constraints

```powershell
PS C:\> Get-DbaDbCheckConstraint -SqlInstance sql2016
```

### Example 2: Gets the check constraints for the db1 database

```powershell
PS C:\> Get-DbaDbCheckConstraint -SqlInstance Server1 -Database db1
```

### Example 3: Gets the check constraints for all databases except db1

```powershell
PS C:\> Get-DbaDbCheckConstraint -SqlInstance Server1 -ExcludeDatabase db1
```

### Example 4: Gets the check constraints for all databases that are not system objects

```powershell
PS C:\> Get-DbaDbCheckConstraint -SqlInstance Server1 -ExcludeSystemTable
```

### Example 5: Gets the check constraints for the databases on Sql1 and Sql2/sqlexpress

```powershell
PS C:\> 'Sql1','Sql2/sqlexpress' | Get-DbaDbCheckConstraint
```

### Required Parameters

##### -SqlInstance

The target SQL Server instance or instances

| Property | Value |
| --- | --- |
| Alias |  |
| Required | True |
| Pipeline | true (ByValue) |
| Default Value |  |

### Optional Parameters

##### -SqlCredential

Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential).  
Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported.  
For MFA support, please use Connect-DbaInstance.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | false |
| Default Value |  |

##### -Database

Specifies which databases to search for check constraints. Accepts wildcards and multiple database names.  
Use this when you need to examine constraints on specific databases rather than all accessible databases on the instance.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | false |
| Default Value |  |

##### -ExcludeDatabase

Excludes specific databases from the check constraint search. Accepts multiple database names.  
Useful when you want to scan most databases but skip certain ones like development or temporary databases.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | false |
| Default Value |  |

##### -ExcludeSystemTable

Excludes check constraints from system tables when searching through databases.  
Use this to focus only on user-created tables and avoid system table constraints that are typically not relevant for DBA reviews.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | false |
| Default Value | False |

##### -EnableException

By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.  
This avoids overwhelming you with "sea of red" exceptions, but is inconvenient because it basically disables advanced scripting.  
Using this switch turns this "nice by default" feature off and enables you to catch exceptions with your own try/catch.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | false |
| Default Value | False |

## Outputs

**Microsoft.SqlServer.Management.Smo.Check**

Returns one Check object per check constraint found in the specified databases. Each object represents a single check constraint defined on a database table.

**Default display properties (via Select-DefaultView):**

- ComputerName: The computer name of the SQL Server instance
- InstanceName: The SQL Server instance name
- SqlInstance: The full SQL Server instance name (computer\instance)
- Database: The database name containing the check constraint
- Parent: The table object that contains this check constraint
- ID: Unique identifier of the check constraint
- CreateDate: DateTime when the check constraint was created
- DateLastModified: DateTime when the check constraint was last modified
- Name: The name of the check constraint
- IsEnabled: Boolean indicating if the check constraint is currently enabled
- IsChecked: Boolean indicating if the constraint is checked during INSERT/UPDATE operations
- NotForReplication: Boolean indicating if the constraint applies to replication operations
- Text: The actual check constraint definition/expression (the logic that validates the data)
- State: SMO object state (Existing, Creating, Dropping, etc.)

**Additional properties available (from SMO Check object):**

- DatabaseEngineEdition: The SQL Server edition where the check constraint exists
- DatabaseEngineType: The type of database engine
- Urn: Unique Resource Name for the constraint
- ExtendedProperties: Extended properties attached to the constraint
All properties from the base SMO Check object are accessible even though only default properties are displayed without using Select-Object *.

---

Part of [dbatools](https://dbatools.io/), a free and open source PowerShell module for SQL Server administration. Full command index: https://dbatools.io/commands/
