2010-06-16 49 views
0

我们可以将默认文件移动到另一个文件组。下面文件和文件组sql server 2005

示例代码示例代码给出

create database EMPLOYEE 
ON PRIMARY 
(
NAME = 'PRIMARY_01', 
FILENAME = 'C:\METADATA\PRIM01.MDF', 
SIZE = 5 MB , 
MAXSIZE =50 MB, 
FILEGROWTH = 2 MB), 
(
NAME = 'SECONDARY_02', 
FILENAME = 'C:\METADATA\SEC02.NDF' 
), 

FILEGROUP EMPLOYEE_dETAILS 
(
NAME = 'EMPDETILS_01', 
FILENAME = 'C:\METADATA\EMPDET01.NDF', 
SIZE = 5 MB , 
MAXSIZE =50 MB, 
FILEGROWTH = 2 MB), 
(
NAME = 'EMPDETILS_02', 
FILENAME = 'C:\METADATA\EMPDET02.NDF', 
SIZE = 5 MB , 
MAXSIZE =50 MB, 
FILEGROWTH = 2 MB) 

LOG ON 
(
NAME = 'TRANSACLOG', 
FILENAME ='c:\METADATA\TRAS01.LDF', 
SIZE = 5 MB , 
MAXSIZE =50 MB, 
FILEGROWTH = 2 MB 
) 
现在我想移动
FILENAME = 'C:\METADATA\SEC02.NDF' from deault primary file to the 
FILEGROUP EMPLOYEE_dETAILS ? 

需要帮助?

回答

1

这是无法完成的。一个文件组将“包含”一个或多个文件,并且这些文件托管存储在文件组中的数据(或者我听说过)循环方式 - 将数据视为均匀分布在所有文件之间。您可以指定将数据存储在哪个文件组中,但无法控制该文件组中的哪个文件将被写入任何特定的数据位。如果您以某种方式将文件从一个文件组移动到另一个文件组,您将会将该文件组数据的一半随机移动到另一个不知道如何处理它的文件组,这会永久损坏您的数据库。

你究竟在做什么?将存储在文件组中的数据移动到另一个文件组中?从文件组中删除文件?将文件添加到文件组? (第一个可以通过在目标文件组中创建一个新对象,复制数据,删除旧对象,重命名新对象来完成;后两个可以通过ALTER DATABASE命令完成。)