Sql-Server

在記憶體數據庫中刪除文件和文件組

  • May 12, 2021

我有一個 SQL Server 2016 數據庫,並配置了記憶體表。我想刪除此配置,然後刪除該表。當我想刪除該文件和文件組時,出現以下錯誤。

USE [InMem_Test]
GO
ALTER DATABASE [InMem_Test]  REMOVE FILE [InMemFile]
GO
ALTER DATABASE [InMem_Test] REMOVE FILEGROUP [InMemFileGroup]
GO

消息 41802,級別 16,狀態 1,第 3 行無法刪除最後一個記憶體優化容器“InMemFile”。消息 5042,級別 16,狀態 11,第 5 行文件組“InMemFileGroup”不能被刪除,因為它不是空的。

目前,刪除 Hekaton 的唯一方法是刪除整個數據庫

可能不是您的第一選擇,但微軟似乎不願意改變方向。

Microsoft 已在 SQL 2019 中解決了這個問題。

版本:Microsoft SQL Server 2019 (CTP3.2) - 15.0.1800.32 (X64) Jul 17 2019 21:29:33

請參閱Daniel Adeniji 的文件組和文件 - v2019/CTP

語法是這樣的:

文件組管理 - 從文件組中刪除文件

ALTER DATABASE [database] REMOVE FILE [symbolicName];

樣本:

ALTER DATABASE [MyDatabase] REMOVE FILE [InMemoryContainer]
GO

文件組管理 - 刪除文件組

ALTER DATABASE [database] REMOVE FILEGROUP [filegroup];

樣本:

ALTER DATABASE [MyDatabase] REMOVE FILEGROUP [DBMO.MOD];

引用自:https://dba.stackexchange.com/questions/179853