小编psa*_*dac的帖子

将大量表移动到不同的文件组

现有数据库在 PRIMARY 文件组中存储了大量表。我想根据表名的“前缀”自动将这些表及其索引移动到不同的文件组上。

例如,有 5 个表命名如下:

ABC_XXXX
ABC_YYYY
DEF_ZZZZ
DEF_TTTT
GHI_UUUU
Run Code Online (Sandbox Code Playgroud)

ABC应将开头的所有表移到文件组FG1DEF文件组FG2和其他表到文件组DEFAULT

这可以使用以下命令完成CREATE INDEX

CREATE (UNIQUE|CLUSTERED|) INDEX <Index Name> ON <Table Name>(<Index Columns>)
       WITH (DROP_EXISTING = ON) ON <New Filegroup>
Run Code Online (Sandbox Code Playgroud)

这个命令最大的问题是按正确的顺序检索每个索引的列。

sql-server-2005 sql-server-2008 sql-server

6
推荐指数
1
解决办法
1万
查看次数