SQL服务器设置AUTOGROW_ALL_FILES失败

cno*_*nom 0 sql-server

我试着执行这个:

USE [MyDB]
GO
declare @autogrow bit
SELECT @autogrow=convert(bit, is_autogrow_all_files) FROM sys.filegroups WHERE name=N'PRIMARY'
if(@autogrow=0)
    ALTER DATABASE [MyDB] MODIFY FILEGROUP [PRIMARY] AUTOGROW_ALL_FILES
GO
Run Code Online (Sandbox Code Playgroud)

它失败了:

当其他用户使用数据库'HistoryDBTest'时,无法更改数据库状态

我该怎么办呢?

Lar*_*rnu 5

您需要将数据库更改为单用户模式.小心使用; 考虑到错误是"其他用户正在使用数据库",这意味着这些用户将切断与数据库的连接,并回滚他们的事务.

USE master;
GO
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
USE [MyDB];
GO
DECLARE @autogrow bit;
SELECT @autogrow = CONVERT(bit, is_autogrow_all_files)
FROM sys.filegroups
WHERE name = N'PRIMARY';
IF (@autogrow = 0) ALTER DATABASE [MyDB] MODIFY FILEGROUP [PRIMARY] AUTOGROW_ALL_FILES;
GO
USE master;
GO
ALTER DATABASE MyDB SET MULTI_USER;
Run Code Online (Sandbox Code Playgroud)