Author | Mikey Bronowski (@MikeyBronowski), bronowski.it |
Availability | Windows, Linux, macOS |
Want to see the source code for this command? Check out Remove-DbaDbPartitionScheme on GitHub.
Want to see the Bill Of Health for this command? Check out Remove-DbaDbPartitionScheme.
Removes database partition schemes from SQL Server databases.
Removes partition schemes from specified databases across one or more SQL Server instances. Partition schemes define how partitioned tables and indexes map to filegroups, and this function helps clean up unused schemes during database reorganization or migration projects.
The function integrates seamlessly with Get-DbaDbPartitionScheme through pipeline support, allowing you to first identify partition schemes and then selectively remove them. This is particularly useful when consolidating databases or simplifying partition strategies.
Each removal operation includes confirmation prompts by default to prevent accidental deletion of partition schemes that may still be referenced by tables or indexes.
Remove-DbaDbPartitionScheme
[-SqlInstance <DbaInstanceParameter[]>]
[-SqlCredential <PSCredential>]
[-Database <String[]>]
[-ExcludeDatabase <Object[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-DbaDbPartitionScheme
[-SqlInstance <DbaInstanceParameter[]>]
[-SqlCredential <PSCredential>]
[-Database <String[]>]
[-ExcludeDatabase <Object[]>]
-InputObject <PartitionScheme[]>
[-EnableException]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
PS C:\> Remove-DbaDbPartitionScheme -SqlInstance localhost, sql2016 -Database db1, db2
Removes partition schemes from db1 and db2 on the local and sql2016 SQL Server instances.
PS C:\> Get-DbaDbPartitionScheme -SqlInstance SRV1 | Out-GridView -Title 'Select partition scheme(s) to drop' -OutputMode Multiple | Remove-DbaDbPartitionScheme
Using a pipeline this command gets all partition schemes on SRV1, lets the user select those to remove and then removes the selected partition schemes.
Accepts partition scheme objects piped from Get-DbaDbPartitionScheme for targeted removal operations.
Use this for selective removal workflows where you first identify specific partition schemes and then remove only those schemes.
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 scan for partition schemes to remove. Accepts multiple database names.
Use this when you need to remove partition schemes from specific databases rather than all databases on the instance, such as during database decommissioning or partition strategy simplification.
Alias | |
Required | False |
Pipeline | false |
Default Value |
Specifies databases to skip when scanning for partition schemes to remove. Accepts multiple database names.
Use this to exclude system databases or specific databases you want to preserve during bulk partition scheme cleanup operations.
Alias | |
Required | False |
Pipeline | false |
Default Value |
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 |