本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.10节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。
本方案将讲述如何使用SMO和PowerShell删除数据库。
本任务假设你创建TestDB数据库。如果没有,按照创建数据库方案中的步骤创建一个。
1.通过“Start | Accessories | Windows PowerShell | Windows PowerShell ISE”打开PowerShell控制台。
2.导入SQLPS模块,创建一个新的SMO服务器对象。
#import SQL Server module Import-Module SQLPS –DisableNameChecking #replace this with your instance name $instanceName = "KERRIGAN" $server = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Server -ArgumentList $instanceName3.添加如下代码并运行。
$dbName = "TestDB" #need to check if database exists, and if it does, drop it $db = $server.Databases[$dbName] if ($db) { #we will use KillDatabase instead of Drop #Kill database will drop active connections before #dropping the database $server.KillDatabase($dbName) }为了删除一个SMO服务器或数据库对象,你可以简单调用Drop方法。然而,如果你之前尝试过删除数据库,你可能已经经历过被活动的连接所阻塞。因此,我们选择了KillDatabase方法,在删除数据库之前将会杀掉活动连接。当你从“Object Explorer”中删除数据库时,这个选项在SSMS中也是可用的。右击一个数据库,将出现“Delete Object”窗口。在窗口底部有一个“Close existing connections”的复选框,选中复选框。