我正在SQL Server 2008中对我的模式进行积极的开发,经常想重新运行我的drop/create数据库脚本.当我跑的时候

USE [master]
GO

IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'MyDatabase')
DROP DATABASE [MyDatabase]
GO

我经常犯这样的错误

Msg 3702, Level 16, State 4, Line 3
Cannot drop database "MyDatabase" because it is currently in use.

如果右键单击对象资源管理器窗格中的数据库,并从上下文菜单中 Select 删除任务,则会出现一个复选框,用于"关闭现有连接"

有没有办法在我的脚本中指定这个选项?

推荐答案

您可以断开所有人的连接,并通过以下方式回滚他们的交易:

alter database [MyDatbase] set single_user with rollback immediate

之后,您可以安全地删除数据库:)

Sql相关问答推荐

当我们加入两个表时,我们可以省略GROUP BY中的列名吗?

在postgres中动态计算出现次数并插入到json中

按每天的最大值分组

Ffltter&;Dart SQL Lite包:是否可以在一个查询中执行多条更新语句(每次执行不同的WHERE参数)

通过之前的连接-这是Oracle的错误吗?

值对于类型字符来说太长

在SQL中返回缺省值,即使查询不返回任何结果

最近3个月收到的邮箱总数

在PostgreSQL中汇总连接表中的 case 值

如何在多列上编写具有不同条件的查询?

删除所有订单中可用的重复值

将时间范围划分为全天和前后剩余小时

如何在MS Access中基于另外两个表自动填充一个表中的字段?

在 PostgreSQL 中使用 ltree 列进行累积

显示所有组并计算给定组中的项目(包括 0 个结果)

如何使用最后一个非 NULL 值在 PostgreSQL 列中填充 NULL 值

Postgres更新增量之间的差异

计数时如何为所有时间间隔返回 0 而不是什么都不返回

使用 regexp_replace 替换所有出现的特殊字符

多列上的 SQL UNIQUE 约束 - 它们的组合必须是唯一的还是至少其中之一?