如何在使用MSSQL 2005的其他驱动器上创建文件组,然后将表格移入其中?
例如:我的数据库位于H:\ Product.mdf和H:\ Product.ldf
我想在F:\ FileGroup \上创建一个新文件组,然后将带有聚簇索引的表移动到这个新文件组。
答案 0 :(得分:3)
这不是一项简单的任务,根据您的表的大小,可能需要一大堆停机时间。
首先,您必须定义新文件组:
ALTER DATABASE MyDatabase
add filegroup NewGroup
然后,为该文件组创建适当的文件,例如:
ALTER DATABASE MyDatabase
add file
(
name = NewFile
,filename = 'C:\temp\NewFile.ndf'
,size = 100MB
,maxsize = unlimited
,filegrowth = 100MB
)
to filegroup NewGroup
要将表移动到文件组,您必须在文件组上为该表创建聚簇索引。如果您有一个集群约束(例如唯一或主键),则必须先将其删除。这是移动这样一张桌子的一种方法:
-- Set up sample table
CREATE TABLE MyTable
(
Data varchar(100) not null
constraint PK_MyTable
primary key clustered
)
-- Can't "move" primary key constraint to a new file group
ALTER TABLE MyTable
drop constraint PK_MyTable
-- This will move the data in the table to the new file group
CREATE clustered index Move_MyTable
on MyTable (Data)
on NewGroup
-- Still in the new file group, just no index
DROP INDEX MyTable.Move_MyTable
-- Recreate the primary key, keeping it on the new file group
ALTER TABLE MyTable
add constraint PK_MyTable
primary key clustered (Data)
on NewGroup
这只是有点挑剔,所以一定要先测试数据库副本上的所有内容!