本节书摘来自异步社区出版社《PowerShell V3—SQL Server 2012数据库自动化运维权威指南》一书中的第2章,第2.10节,作者:【加拿大】Donabel Santos,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.10 删除数据库
本方案将讲述如何使用SMO和PowerShell删除数据库。
2.10.1 准备
本任务假设你创建TestDB数据库。如果没有,按照创建数据库方案中的步骤创建一个。
2.10.2 如何做…
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 $instanceName
3.添加如下代码并运行。
$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)
}
2.10.3 如何实现…
为了删除一个SMO服务器或数据库对象,你可以简单调用Drop方法。然而,如果你之前尝试过删除数据库,你可能已经经历过被活动的连接所阻塞。因此,我们选择了KillDatabase方法,在删除数据库之前将会杀掉活动连接。当你从“Object Explorer”中删除数据库时,这个选项在SSMS中也是可用的。右击一个数据库,将出现“Delete Object”窗口。在窗口底部有一个“Close existing connections”的复选框,选中复选框。