sql-server - SQL 服务器设置 AUTOGROW_ALL_FILES 失败
问题描述
我尝试执行此操作:
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
它失败了:
当其他用户正在使用数据库“HistoryDBTest”时,无法更改数据库状态
我怎么能绕过它?
解决方案
您需要将数据库更改为单用户模式。小心使用它;考虑到错误是“其他用户正在使用数据库”,这意味着这些用户将切断与数据库的连接,并且他们的事务回滚。
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;
推荐阅读
- python - 如何在 Python 中使用 tcp 套接字发送和接收网络摄像头流?
- spring - 如何在 Spring 中从 WebRequest 获取请求的 URI?
- json - SPARK - 无法读取多行 JSON (corrupt_record: string (nullable = true))
- symfony4 - Symfony 4 事件丢失和错误上的键入实体
- reactjs - 使用 redux 无法正确更新道具
- debugging - 使用 vue-cli-template 时调试 NativeScript-Vue
- css - nuget 更新后样式混乱。
- java - 是否可以使用具有不同密钥对的现有 CA 生成签名证书?
- mysql - 通过 Node.js/Express 连接 MySQL 时遇到问题
- css - 带有 gridlisttiles 的断点