USE master
GO
DECLARE @DbName nvarchar(MAX)
SET @DbName = N'DataBase'
ALTER DATABASE @DbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE @DbName SET OFFLINE WITH NO_WAIT
GO
ALTER DATABASE @DbName SET ONLINE
GO
ALTER DATABASE @DbName
SET MULTI_USER
GO
参数我知道我可以使用EXEC但它是一个有点难看....如何通过一个数据库名称为在SQL Server
您不能在大多数DML/DDL中参数化对象引用。你确实需要EXEC/sp_executesql,并建立一些动态查询。 – MatBailie 2012-02-01 09:32:40
我假设你已经看到这个问题http://stackoverflow.com/questions/9093478/how-to-pass-a-database-name-as-a-parameter-in-sql-server它建议EXEC。这可能是唯一的方法。 – Ray 2012-02-01 09:32:43
@Ray你链接到我自己的问题:-P – 2012-02-01 19:49:10