【发布时间】:2016-03-19 09:51:45
【问题描述】:
现在,我在这里尝试的是根据任何条件(在 IF 块内)从我的 SQL Server 中删除数据库,例如。如果数据库存在,请删除并重新创建它。
我正在使用以下代码:
IF EXISTS (SELECT 1 FROM sys.databases db with(nolock) WHERE db.name = 'practice')
BEGIN
USE master
DROP DATABASE practice
END
这段代码会持续执行几分钟,然后回复一个错误提示
消息 3702,第 16 级,状态 4,第 1 行
无法删除数据库“练习”,因为它当前正在使用中。
然后我再次尝试在我的代码中使用 GO 语句来分隔执行流程,并使用以下代码(注意这也有 create database 语句):
IF EXISTS (SELECT 1 FROM sys.databases db with(nolock) WHERE db.name = 'practice')
BEGIN
USE master
GO
DROP DATABASE practice
GO
CREATE DATABASE practice
END
现在它抛出这个错误:
消息 102,第 15 级,状态 1,第 3 行
“master”附近的语法不正确。
消息 3702,第 16 级,状态 4,第 1 行
无法删除数据库“练习”,因为它当前正在使用中。
消息 102,第 15 级,状态 1,第 2 行
'END' 附近的语法不正确
我不知道我是否遗漏了什么,或者有什么需要解决的办法。
另外,如果有的话,我会对更好的替代品感兴趣。
我不知道这是否可行。
问候, 小腿
【问题讨论】:
标签: sql database sql-server-2008-r2 drop-database