Sql server 2008 在SQL Server 2008中,如何将表移动到特定的文件组

Sql server 2008 在SQL Server 2008中,如何将表移动到特定的文件组,sql-server-2008,filegroup,Sql Server 2008,Filegroup,我刚刚创建了一个辅助文件组,希望将一些表移到该文件组上,然后将其设为只读 我不知道该怎么做 我是否只使用将blah blah更改为MyFileGroup?有两种方法;一个来自SSMS,另一个使用TSQL 从SQL Server 2008联机丛书: 将现有索引移动到其他文件组或分区 方案 在对象资源管理器中,连接到SQL Server数据库的实例 引擎,然后展开该实例 展开数据库,展开包含具有 指定特定的索引,然后展开 桌子 展开索引所属的表,然后展开索引 右键单击要移动的索引,然后选择“属性”

我刚刚创建了一个辅助文件组,希望将一些表移到该文件组上,然后将其设为只读

我不知道该怎么做


我是否只使用
将blah blah更改为MyFileGroup

有两种方法;一个来自SSMS,另一个使用TSQL

从SQL Server 2008联机丛书:

将现有索引移动到其他文件组或分区 方案

  • 在对象资源管理器中,连接到SQL Server数据库的实例 引擎,然后展开该实例

  • 展开数据库,展开包含具有 指定特定的索引,然后展开 桌子

  • 展开索引所属的表,然后展开索引

  • 右键单击要移动的索引,然后选择“属性”

  • 在“索引属性”对话框中,选择存储页面

  • 选择要在其中移动索引的文件组

不能移动使用创建的索引 由指定的唯一或主键约束 使用“索引属性”对话框。 要移动这些索引,您需要 使用ALTERTABLE删除约束 (Transact-SQL)中的 约束选项,然后重新创建 对所需对象的约束 使用ALTER TABLE的文件组 (Transact-SQL)和添加约束 选择权

如果表或索引已分区, 选择其中的分区方案 移动索引

[SQL Server 2008之前版本:将现有表放置在不同的文件组(SSMS)上]

  • 展开数据库,展开包含表的数据库,然后单击表
  • 在“详细信息”窗格中,在表上单击鼠标右键,然后单击“设计表”
  • 在任意列上单击鼠标右键,然后单击“属性”
  • 在“表”选项卡上的“表文件组”列表中,选择要放置表的文件组
  • (可选)在“文本文件组”列表中,选择要放置任何文本、图像和文本列的文件组。]
更有效的方法是

在上创建聚集索引的步骤 桌子如果该表已具有 聚集索引,您可以使用 使用创建索引命令的 删除现有子句以重新创建 聚集索引并将其移动到 特定文件组。当一张桌子 一个聚集索引,即 的索引和数据页 表本质上成为一个 一样。表必须存在于 聚集索引存在,因此如果 创建或重新创建集群 索引将索引放置在 要移动的特定文件组 表也将添加到新文件组

学分:


您可以创建(或重新创建)聚集索引,指定ON子句的新文件组,这将移动表(数据)。但是,如果您有非聚集索引,并且希望在另一个文件组上使用它们,则必须删除并重新创建它们,同时在on子句中指定新的文件组

像这样的事情应该会有所帮助:

CREATE UNIQUE CLUSTERED INDEX PK_YourTableName 
    ON dbo.YourTableName(YourPKFields)
    WITH (DROP_EXISTING = ON) ON [NewFilegroup]

我同意马克的观点。通过将数据迁移到另一个文件,重建群集运行良好,比任务->收缩数据库->文件->空文件快得多。


通过单独创建索引,可以控制系统上的负载,而无需从
select*到[your.new.table.]from…..

>右键单击任意列,然后单击属性。不,没有这样做的选项:(屏幕截图?必须在SQL 2008中进行了更改,TSQL方法应该仍然有效。当我找到选项移动到哪里时,我将进行更新!嗯……你能发布TSQL吗?我正在尝试以下操作(但不起作用):-在dbo.NorthAmerican_Countries(id)上创建索引PK_TableFooIdSpatialDataReadOnlyupdated上存在DROP_,以反映SQL 2008如何通过SSMS进行操作。请注意对unique或primary key constraint的限制。啊,该死。这是我的问题:(该表只有一个索引(PK)。你能编辑你的回复吗(再编辑一次)要包含一些示例sql,请?我认为这是可行的。当我检查表->属性->存储时,它将“文件组”显示为我的新文件组(从上面看),但文本FileGroup==PRIMARY?是这样吗?还是也应该按次要文件组(例如NewFilegroup)显示.?这是另一回事-您可以在创建表时为Text/NText字段指定一个文件组,但联机丛书说:“创建表中指定的任何大值列数据的存储随后都不能更改。”:-(正确,创建表后,您无法更改TEXT/NTEXT数据的文件组。您需要使用正确的文件组将数据移动到新表中,然后将该表重命名为旧表名以更改TEXT/NTEXT文件组。这是可行的,但当我检查表属性中的存储部分时,我看到TEXT filegroup只保留在主目录上。我创建了一个如下表:“创建表[dbo]。图像([id][bigint]不为NULL,[name][nvarchar](500)不为NULL,)位于SecondFG”并且文件组和文本文件组现在都是SecondFG文件组。为什么会发生这种情况?