将很少或全部基准的SQL模式从单用户更改为多用户

时间:2019-01-11 08:02:46

标签: sql-server tsql

我有多个数据库,可以将模式从Single-User更改为Multi-User。 我可以用它来更改一个数据库。

USE master;
GO
ALTER DATABASE CDN_Ceramika
SET MULTI_USER;
GO

仅当模式为单用户时,对于多用户模式更改时,是否可以更改几个碱基或任何查询的模式?

3 个答案:

答案 0 :(得分:2)

如果您不熟悉数据库管理,建议使用sys.sp_MSforeachdb来反对 。尽管没有记录,但它是DBA中非常流行的功能,它知道并四重检查他们的工作。 This article解释了它的一些陷阱。

通常,使用SQL生成要执行的命令字符串,检查它们,解决任何问题并执行生成的脚本,通常更安全。可能在交易内(如果适用)。

如文章所示,sp_MSforeachdb本身查询sys.databases表。您可以执行相同操作,例如,使用:

select 'ALTER DATABASE [' + name + '] SET MULTI_USER;'
from sys.databases
where name not in ('master','tempdb','model','msdb')

为您想要的名称与ALTER DATABASE子句匹配的所有数据库生成WHERE。您也可以写:

select 'ALTER DATABASE [' + name + '] SET MULTI_USER;'
from sys.databases
where name not in ('master','tempdb','model','msdb')
and [user_access_desc] != 'MULTI_USER'

排除已经处于多用户模式的数据库

答案 1 :(得分:1)

您可以使用未公开文件的系统过程sp_msforeachdb

USE master;

EXEC sys.sp_MSforeachdb 'IF ''?'' NOT IN (''master'',''msdb'',''tempdb'',''model'') BEGIN
    ALTER DATABASE ? SET MULTI_USER;
END;';

答案 2 :(得分:-1)

右键单击要更改的数据库,然后单击“属性”。

点击“选项”并向下滚动到底部,然后如下所示进行设置:

enter image description here

单击确定,它将被设置。