首先,假设有一个表T,创建在文件组OldFilegroup上,现在要将表T移到新的文件组NewfileGroup上。
1、处理主键的情形,即聚集索引和主键建在相同的字段上
假设有一个主键名称为PK_T,首先删除主键:alter table T drop constraint PK_T
然后重新在新文件组上创建主键:
ALTER TABLE [dbo].[T] WITH NOCHECK ADD
CONSTRAINT [PK_T] PRIMARY KEY CLUSTERED
(
[id]--注意ID这里是你原来的那些主键组成的列
) ON [NewFileGroup]
2、处理聚集索引的情形,即聚集索引和主键建不在相同的字段上
假设有一个聚集索引名称为IX_ID,首先删除聚集索引:drop index T.IX_ID
然后重新在新文件组上创建聚集索引:
create clustered index IX_ID on T(ID) on [NewfileGroup]--注意ID那里是你原来的那些聚集索引组成的列
这样,用下面的查询看看你的表是不是在新的文件组上了?
select groupname ,o.name from sysindexes a join sysfilegroups b
on a.groupid=b.groupid join sysobjects o on a.id=o.id
and o.name='T用户水费通知'