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数据库的实例 引擎,然后展开该实例
- 展开数据库,展开包含具有 指定特定的索引,然后展开 桌子
- 展开索引所属的表,然后展开索引
- 右键单击要移动的索引,然后选择“属性”
- 在“索引属性”对话框中,选择存储页面
- 选择要在其中移动索引的文件组
- 展开数据库,展开包含表的数据库,然后单击表
- 在“详细信息”窗格中,在表上单击鼠标右键,然后单击“设计表”
- 在任意列上单击鼠标右键,然后单击“属性”
- 在“表”选项卡上的“表文件组”列表中,选择要放置表的文件组
- (可选)在“文本文件组”列表中,选择要放置任何文本、图像和文本列的文件组。]
您可以创建(或重新创建)聚集索引,指定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文件组。为什么会发生这种情况?