Internal/New-SqlConnectionString.ps1
|
function New-SqlConnectionString { <# .SYNOPSIS Creates or extends a SQL connection string. .DESCRIPTION Builds a connection string from connection properties, or appends an initial catalog to an existing connection string. Used internally by the module's SQL instance and database commands. .EXAMPLE New-SqlConnectionString -DataSource 'localhost' -InitialCatalog 'test-db' Returns a SQL connection string composed from the supplied properties. Illustrative output: Data Source=localhost;Connect Timeout=30;Initial Catalog=test-db #> [CmdletBinding(DefaultParameterSetName = 'Compose')] param ( # Specifies the data source for a new connection string. [Parameter(Mandatory, ParameterSetName = 'Compose')] [ValidateNotNullOrEmpty()] [string] $DataSource, # Specifies an existing connection string to extend with a database catalog. [Parameter(Mandatory, ParameterSetName = 'AppendInitialCatalog')] [ValidateNotNullOrEmpty()] [string] $ConnectionString, # Specifies the timeout for a new connection string. [Parameter(ParameterSetName = 'Compose')] [int] $ConnectTimeout = 30, # Specifies the authentication setting for a new connection string. [Parameter(ParameterSetName = 'Compose')] [string] $Authentication, # Specifies the database catalog to include in a new or existing connection string. [Parameter(ParameterSetName = 'Compose')] [Parameter(Mandatory, ParameterSetName = 'AppendInitialCatalog')] [ValidateNotNullOrEmpty()] [string] $InitialCatalog ) if ( $PSCmdlet.ParameterSetName -eq 'AppendInitialCatalog' ) { return "$ConnectionString;Initial Catalog=$InitialCatalog" } $connectionString = "Data Source=$DataSource;Connect Timeout=$ConnectTimeout" if ( $InitialCatalog ) { $connectionString += ";Initial Catalog=$InitialCatalog" } if ( $Authentication ) { $connectionString += ";$Authentication" } return $connectionString } |