---
title: "Get-DbaDbPartitionScheme"
description: "Retrieves partition schemes from SQL Server databases for table partitioning management."
url: "https://dbatools.io/Get-DbaDbPartitionScheme/"
availability: "Windows, Linux, macOS"
tags: ["Database", "Partition"]
author: "Klaas Vandenberghe (@PowerDbaKlaas)"
source: "https://github.com/dataplat/dbatools/blob/master/public/Get-DbaDbPartitionScheme.ps1"
last_updated: "2024-01-01"
---

# Get-DbaDbPartitionScheme

## Synopsis

Retrieves partition schemes from SQL Server databases for table partitioning management.

## Description

Retrieves partition scheme objects from one or more SQL Server databases, providing details about how partitioned tables and indexes are distributed across filegroups. Partition schemes define the physical storage mapping for partitioned tables by specifying which filegroups contain each partition's data. This function helps DBAs inventory existing partition schemes when planning table partitioning strategies, troubleshooting performance issues with partitioned tables, or preparing for partition maintenance operations.

## Syntax

```powershell
Get-DbaDbPartitionScheme
    [-SqlInstance] <DbaInstanceParameter[]>
    [[-SqlCredential] <PSCredential>]
    [[-Database] <Object[]>]
    [[-ExcludeDatabase] <Object[]>]
    [[-PartitionScheme] <String[]>]
    [-EnableException]
    [<CommonParameters>]

```

## Examples

### Example 1: Gets all database partition schemes

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

### Example 2: Gets the partition schemes for the db1 database

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

### Example 3: Gets the partition schemes for all databases except db1

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

### Example 4: Gets the partition schemes for the databases on Sql1 and Sql2/sqlexpress

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

### Example 5: Gets the partition scheme partSch01 for the TestDB on localhost

```powershell
PS C:\> Get-DbaDbPartitionScheme -SqlInstance localhost -Database TestDB -PartitionScheme partSch01
```

### 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 scan for partition schemes. Accepts multiple database names.  
Use this when you need to check partition schemes in specific databases rather than all accessible databases on the instance.

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

##### -ExcludeDatabase

Specifies databases to skip when scanning for partition schemes. Accepts multiple database names.  
Use this to exclude system databases or specific databases you don't want to check, such as development or staging databases during production audits.

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

##### -PartitionScheme

Specifies which partition schemes to retrieve by name. Accepts multiple scheme names for targeted retrieval.  
Use this when you need to examine specific partition schemes rather than all schemes in the database, such as when troubleshooting performance issues with particular partitioned tables.

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

##### -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.PartitionScheme**

Returns one PartitionScheme object per partition scheme found in the specified databases. When no filters are applied, all accessible databases are scanned and all partition schemes are returned.

**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 containing this partition scheme
- Name: The name of the partition scheme
- PartitionFunction: The name of the partition function used by this scheme

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

- PartitionFunctionName: The partition function name (same as PartitionFunction)
- Urn: The Uniform Resource Name of the partition scheme object
- State: The current state of the SMO object (Existing, Creating, Pending, Dropping, etc.)
- Parent: The database object that contains this partition scheme
All properties from the base SMO PartitionScheme object are accessible 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/
