---
title: "Get-DbaDbView"
description: "Retrieves SQL Server database views with metadata for documentation and analysis."
url: "https://dbatools.io/Get-DbaDbView/"
availability: "Windows, Linux, macOS"
tags: ["View", "Database"]
author: "Klaas Vandenberghe (@PowerDbaKlaas)"
source: "https://github.com/dataplat/dbatools/blob/master/public/Get-DbaDbView.ps1"
last_updated: "2024-01-01"
---

# Get-DbaDbView

## Synopsis

Retrieves SQL Server database views with metadata for documentation and analysis.

## Description

Retrieves all database views from SQL Server instances along with their schema, creation dates, and modification timestamps. This helps DBAs document database architecture, analyze view dependencies, and audit database objects across multiple servers and databases. The function excludes system views by default when requested, making it useful for focusing on custom business logic views.

## Syntax

```powershell
Get-DbaDbView
    [[-SqlInstance] <DbaInstanceParameter[]>]
    [[-SqlCredential] <PSCredential>]
    [[-Database] <Object[]>]
    [[-ExcludeDatabase] <Object[]>]
    [-ExcludeSystemView]
    [[-View] <String[]>]
    [[-Schema] <String[]>]
    [[-InputObject] <Database[]>]
    [-EnableException]
    [<CommonParameters>]

```

## Examples

### Example 1: Gets all database views

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

### Example 2: Gets the views for the db1 database

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

### Example 3: Gets the views for all databases except db1

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

### Example 4: Gets the views for all databases that are not system objects (there can be 400+ system views in each DB)

```powershell
PS C:\> Get-DbaDbView -SqlInstance Server1 -ExcludeSystemView
```

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

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

### Example 6: Pipe the databases from Get-DbaDatabase into Get-DbaDbView

```powershell
PS C:\> Get-DbaDatabase -SqlInstance Server1 -ExcludeSystem | Get-DbaDbView
```

### Example 7: Gets the view vw1 for the db1 database

```powershell
PS C:\> Get-DbaDbView -SqlInstance Server1 -Database db1 -View vw1
```

### Optional Parameters

##### -SqlInstance

The target SQL Server instance or instances. This can be a collection and receive pipeline input to allow the function to be executed against multiple SQL Server instances.

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

##### -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 views. Use this when you need to focus on specific databases instead of scanning all databases on the instance.

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

##### -ExcludeDatabase

Specifies databases to skip when retrieving views. Useful when you want results from most databases but need to exclude specific ones like test or staging databases.

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

##### -ExcludeSystemView

Excludes SQL Server system views from results to focus only on user-created views. Essential when documenting custom application views since each database can contain 400+ system views that clutter   
output.

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

##### -View

Specifies specific view names to retrieve instead of returning all views. Supports three-part naming (database.schema.view) to target views across different databases and schemas in a single query.

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

##### -Schema

Filters results to views within specific schemas only. Useful for organizing output when databases have views spread across multiple schemas like dbo, reporting, or application-specific schemas.

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

##### -InputObject

Accepts database objects from Get-DbaDatabase through the pipeline. Allows you to filter databases first with Get-DbaDatabase then retrieve views from only those selected databases.

| Property | Value |
| --- | --- |
| Alias |  |
| Required | False |
| Pipeline | true (ByValue) |
| 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.View**

Returns one View object per database view found that matches the filter criteria.

**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 view
- Schema: The schema name where the view is defined
- CreateDate: The datetime when the view was created
- DateLastModified: The datetime when the view was last modified
- Name: The name of the view

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

- IsSystemObject: Boolean indicating if this is a system view
- IsEncrypted: Boolean indicating if the view definition is encrypted
- IsBound: Boolean indicating if the view references only available objects
- Implementation: String indicating the view implementation (Standard or Unknown)
- PropertyCount: Integer count of the number of properties the view has
- TextHeader: String containing the header portion of the view definition
- TextMode: The text mode of the view
All properties from the SMO View object are accessible by using Select-Object * or by using the property names directly.

---

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