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

# Get-DbaDbPartitionFunction

## Synopsis

Retrieves partition function definitions and metadata from SQL Server databases.

## Description

Retrieves partition function definitions and their metadata from one or more SQL Server databases. Partition functions define how table or index data is distributed across multiple partitions based on the values of a partitioning column. This function returns details like creation date, function name, and number of partitions, making it useful for documenting partitioning schemes, analyzing partition distribution strategies, and auditing partitioned table configurations before maintenance operations.

## Syntax

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

```

## Examples

### Example 1: Gets all database partition functions

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

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

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

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

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

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

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

### Example 5: Gets the partition function partFun01 for the TestDB on localhost

```powershell
PS C:\> Get-DbaDbPartitionFunction -SqlInstance localhost -Database TestDB -PartitionFunction partFun01
```

### 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 partition functions. Accepts multiple database names as an array.  
Use this when you need to examine partition functions in specific databases rather than scanning all accessible databases on the instance.

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

##### -ExcludeDatabase

Specifies which databases to skip when searching for partition functions. Accepts multiple database names as an array.  
Use this to avoid scanning system databases or databases where you know partition functions don't exist, improving performance on instances with many databases.

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

##### -PartitionFunction

Specifies which partition functions to retrieve by name. Accepts multiple function names as an array and supports wildcards.  
Use this when you need details about specific partition functions rather than retrieving all partition functions from the target databases.

| 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.PartitionFunction**

Returns one PartitionFunction object for each partition function found in the target databases.

**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 name of the database containing the partition function
- CreateDate: DateTime when the partition function was created
- Name: Name of the partition function
- NumberOfPartitions: The number of partitions defined by this function

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

- ParameterType: The data type used as the partitioning column data type
- Urn: Uniform Resource Name identifying the object within the SQL Server hierarchy
- Parent: Reference to the parent Database object
All properties from the base SMO object are accessible via Select-Object * even though only default properties are displayed without it.

---

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