@@ -54,27 +54,22 @@ function Remove-DbaDbSnapshot {
5454 https://dbatools.io/Remove-DbaDbSnapshot
5555
5656 . EXAMPLE
57- Remove-DbaDbSnapshot -SqlInstance sqlserver2014a
58-
59- Removes all database snapshots from sqlserver2014a
60-
61- . EXAMPLE
62- Remove-DbaDbSnapshot -SqlInstance sqlserver2014a -Snapshot HR_snap_20161201, HR_snap_20161101
57+ Remove-DbaDbSnapshot -SqlInstance sql2014 -Snapshot HR_snap_20161201, HR_snap_20161101
6358
6459 Removes database snapshots named HR_snap_20161201 and HR_snap_20161101
6560
6661 . EXAMPLE
67- Remove-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR, Accounting
62+ Remove-DbaDbSnapshot -SqlInstance sql2014 -Database HR, Accounting
6863
6964 Removes all database snapshots having HR and Accounting as base dbs
7065
7166 . EXAMPLE
72- Get-DbaDbSnapshot -SqlInstance sqlserver2014a -Database HR, Accounting | Remove-DbaDbSnapshot
67+ Get-DbaDbSnapshot -SqlInstance sql2014 -Database HR, Accounting | Remove-DbaDbSnapshot
7368
7469 Removes all database snapshots having HR and Accounting as base dbs
75-
70+
7671 . EXAMPLE
77- Remove-DbaDbSnapshot -SqlInstance sqlserver2014a -Snapshot HR_snapshot, Accounting_snapshot
72+ Remove-DbaDbSnapshot -SqlInstance sql2014 -Snapshot HR_snapshot, Accounting_snapshot
7873
7974 Removes HR_snapshot and Accounting_snapshot
8075
@@ -87,6 +82,16 @@ function Remove-DbaDbSnapshot {
8782 Get-DbaDbSnapshot -SqlInstance sql2016 | Out-GridView -Passthru | Remove-DbaDbSnapshot
8883
8984 Allows the selection of snapshots on sql2016 to remove
85+
86+ . EXAMPLE
87+ Remove-DbaDbSnapshot -SqlInstance sql2014 -AllSnapshots
88+
89+ Removes all database snapshots from sql2014
90+
91+ . EXAMPLE
92+ Remove-DbaDbSnapshot -SqlInstance sql2014 -AllSnapshots -Confirm
93+
94+ Removes all database snapshots from sql2014 and prompts for each database
9095#>
9196 [CmdletBinding (SupportsShouldProcess )]
9297 param (
@@ -110,7 +115,7 @@ function Remove-DbaDbSnapshot {
110115 }
111116 process {
112117 if (! $Snapshot -and ! $Database -and ! $AllSnapshots -and $null -eq $InputObject -and ! $ExcludeDatabase ) {
113- Stop-Function - Message " You must pipe in a snapshot or specify -Snapshot, -Database, -Exclude or -AllSnapshots"
118+ Stop-Function - Message " You must pipe in a snapshot or specify -Snapshot, -Database, -ExcludeDatabase or -AllSnapshots"
114119 return
115120 }
116121
@@ -128,18 +133,18 @@ function Remove-DbaDbSnapshot {
128133 }
129134
130135 foreach ($db in $InputObject ) {
131- try {
132- $server = $db.Parent
133- }
134- catch {
135- Stop-Function - Message " Failure" - Category ConnectionError - ErrorRecord $_ - Target $instance - Continue
136+ $server = $db.Parent
137+
138+ if (-not $db.DatabaseSnapshotBaseName ) {
139+ Stop-Function - Message " $db on $server is not a database snapshot" - Continue
136140 }
141+
137142 if ($Force ) {
138143 $db | Remove-DbaDatabase - Confirm:$confirm | Select-DefaultView - Property $defaultprops
139144 }
140145 else {
141146 try {
142- if ($Pscmdlet.ShouldProcess (" $db on $server " , " SMO drop " )) {
147+ if ($Pscmdlet.ShouldProcess (" $db on $server " , " Drop snapshot " )) {
143148 $db.Drop ()
144149 $server.Refresh ()
145150
0 commit comments