现有数据库在 PRIMARY 文件组中存储了大量表。我想根据表名的“前缀”自动将这些表及其索引移动到不同的文件组上。
例如,有 5 个表命名如下:
ABC_XXXX
ABC_YYYY
DEF_ZZZZ
DEF_TTTT
GHI_UUUU
Run Code Online (Sandbox Code Playgroud)
ABC应将开头的所有表移到文件组FG1、DEF文件组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)
这个命令最大的问题是按正确的顺序检索每个索引的列。