-1

我使用 filetable 在我的项目中存储文件。现在我想更改文件组位置并将其移动到另一个驱动器。我怎样才能做到这一点?

4

1 回答 1

0

有两种方式。

  1. 首先分离数据库,移动文件,然后重新附加数据库
  2. 其次在文件组中创建一个新文件,并使用带有 EMPTY 选项的命令 DBCC SHRINKFILE (...),然后删除空文件

第一

EXEC sp_detach_db 'MyDatabase';
--> move the file with a system command
CREATE DATABASE MyDatabase 
   ON FILE (FILENAME = '...',
            FILENAME = '...',
            ...
           )
FOR ATTACH; 

第二

ALTER DATABASE MyDatabase 
   ADD FILE (NAME = '...',
             FILENAME = '...',
             SIZE = ... GB,
             FILEGROWTH = 64 MB)
   TO FILEGROUP ...; --> the same filegroupe
DBCC SHRINKFILE ( '...', EMPTYFILE);
ALTER DATABASE MyDatabase 
   REMOVE FILE '...';

第一个需要将数据库设置为脱机,第二个不需要,但会阻止对移动文件内的表和索引的所有访问。

于 2021-02-28T09:10:03.700 回答