sql-server – 将所有非群集索引移动到SQL Server中的另一个文件
发布时间:2020-12-12 16:15:27 所属栏目:MsSql教程 来源:网络整理
导读:在SQL Server 2008中,我想将DB中的所有非群集索引移动到辅助文件组.最简单的方法是什么? 解决方法 运行此 updated script创建一个名为MoveIndexToFileGroup的存储过程.此过程将表上的所有非聚集索引移动到指定的文件组.它甚至支持一些其他脚本不包含INCLUDE
在SQL Server 2008中,我想将DB中的所有非群集索引移动到辅助文件组.最简单的方法是什么?
解决方法运行此 updated script创建一个名为MoveIndexToFileGroup的存储过程.此过程将表上的所有非聚集索引移动到指定的文件组.它甚至支持一些其他脚本不包含INCLUDE列.此外,它不会重建或移动已经在所需文件组上的索引.创建该过程后,调用它:EXEC MoveIndexToFileGroup @DBName = '<your database name>',@SchemaName = '<schema name that defaults to dbo>',@ObjectNameList = '<a table or list of tables>',@IndexName = '<an index or NULL for all of them>',@FileGroupName = '<the target file group>'; 要创建一个脚本,将为数据库中的每个表运行此脚本,将查询输出切换为文本,然后运行以下命令: SELECT 'EXEC MoveIndexToFileGroup ''' +TABLE_CATALOG+''',''' +TABLE_SCHEMA+''',''' +TABLE_NAME+''',NULL,''the target file group'';' +char(13)+char(10) +'GO'+char(13)+char(10) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_SCHEMA,TABLE_NAME; 详情请参考原版blog.我没有写这个程序,但是根据博客的回复进行了更新,并确认它可以在SQL Server 2005和2008上运行. 更新 > @psteffek modified the script在SQL Server 2012上工作.我合并了他的更改. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |