Author | Mikey Bronowski (@MikeyBronowski), bronowski.it |
Availability | Windows, Linux, macOS |
Want to see the source code for this command? Check out Remove-DbaDbCheckConstraint on GitHub.
Want to see the Bill Of Health for this command? Check out Remove-DbaDbCheckConstraint.
Removes check constraints from SQL Server database tables
Removes check constraints from database tables across one or more SQL Server instances. Check constraints enforce data integrity by validating that column values meet specific criteria before allowing INSERT or UPDATE operations.
This function is useful when modifying table schemas, removing outdated business rules, or preparing databases for data migration where existing constraints might block bulk operations. You can target specific databases or remove constraints across multiple instances simultaneously.
Supports piping from Get-DbaDbCheckConstraint to remove only specific constraints that match your criteria, such as constraints containing particular patterns or on specific tables.
Remove-DbaDbCheckConstraint
[-SqlInstance <DbaInstanceParameter[]>]
[-SqlCredential <PSCredential>]
[-Database <Object[]>]
[-ExcludeDatabase <Object[]>]
[-ExcludeSystemTable]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-DbaDbCheckConstraint
[-SqlInstance <DbaInstanceParameter[]>]
[-SqlCredential <PSCredential>]
[-Database <Object[]>]
[-ExcludeDatabase <Object[]>]
[-ExcludeSystemTable]
-InputObject <Check[]>
[-EnableException]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
PS C:\> Remove-DbaDbCheckConstraint -SqlInstance localhost, sql2016 -Database db1, db2
Removes all check constraints from db1 and db2 on the local and sql2016 SQL Server instances.
PS C:\> $chkcs = Get-DbaDbCheckConstraint -SqlInstance localhost, sql2016 -Database db1, db2
PS C:\> $chkcs | Remove-DbaDbCheckConstraint
Removes all check constraints from db1 and db2 on the local and sql2016 SQL Server instances.
PS C:\> Remove-DbaDbCheckConstraint -SqlInstance localhost, sql2016 -Database db1, db2 -ExcludeSystemTable
Removes all check constraints except those in system tables from db1 and db2 on the local and sql2016 SQL Server instances.
Accepts check constraint objects from Get-DbaDbCheckConstraint for targeted removal operations.
Use this to remove only specific constraints that match your filtering criteria, such as constraints with certain patterns or on particular tables.
Alias | |
Required | True |
Pipeline | true (ByValue) |
Default Value |
The target SQL Server instance or instances.
Alias | |
Required | False |
Pipeline | false |
Default Value |
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.
Alias | |
Required | False |
Pipeline | false |
Default Value |
Specifies which databases to target for check constraint removal. Accepts wildcards and arrays for multiple databases.
Use this when you need to remove constraints from specific databases rather than all databases on the instance.
Alias | |
Required | False |
Pipeline | false |
Default Value |
Excludes specific databases from check constraint removal operations. Accepts wildcards and arrays for multiple databases.
Use this to protect critical databases like master, msdb, or production databases when running against multiple instances.
Alias | |
Required | False |
Pipeline | false |
Default Value |
Excludes check constraints on system tables from the removal operation, focusing only on user-created tables.
Use this switch when you want to modify only business logic constraints while preserving SQL Server's built-in constraints.
Alias | |
Required | False |
Pipeline | false |
Default Value | False |
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.
Alias | |
Required | False |
Pipeline | false |
Default Value | False |
Shows what would happen if the command were to run. No actions are actually performed.
Alias | wi |
Required | False |
Pipeline | false |
Default Value |
Prompts you for confirmation before executing any changing operations within the command.
This is the default. Use -Confirm:$false to suppress these prompts.
Alias | cf |
Required | False |
Pipeline | false |
Default Value |