【发布时间】:2018-11-29 09:00:52
【问题描述】:
我必须将一些表从主文件组移动到默认的主组。我有 3 个不同的环境,每个环境中默认文件组的名称都不同。因此,我可以将默认文件组名称获取为:
select name from sys.filegroups where is_default=1;
现在在重新创建我的索引时,我想使用上述查询的输出来指定我想要创建索引的文件组(因为默认文件组在不同的环境中具有不同的名称,因此,我只想要一个查询被提升)。我试过:
CREATE UNIQUE CLUSTERED INDEX PK_INDEX
ON slam.MY_TABLE(COL_1)
WITH (DROP_EXISTING=ON) ON [select name from sys.filegroups where is_default=1];
但我面临以下错误:
Msg 1921, Level 16, State 1, Line 19 Invalid filegroup 'select name 来自指定了 is_default=1' 的 sys.filegroups。
任何帮助将不胜感激。
【问题讨论】:
-
默认情况下,您创建的任何表或索引都将存储在默认文件组中。你不需要在这里做任何特别的事情 - 只需删除 FG 部分。
-
问题是已经创建了一个新的文件组,它被标记为默认值。表和索引是在创建文件组之前创建的。我只想将表从 PRIMARY 文件组转移到新创建的默认文件组
标签: sql-server subquery filegroup