SqlServer 表分区问题,求高手解答

jun471537173 2020-09-10 07:08:13
问题1、表分区后,怎么移动.ndf分区文件到另外的路径?试过alter database modify file不行。

问题2、表分区后,怎么删除其中一个分区及其对应的.ndf分区文件?注意不是合并,超过一定时间的历史文件直接不要了。
...全文
199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
做分区切换必须两表结构完全一致,包括索引等。
jun471537173 2020-09-14
  • 打赏
  • 举报
回复
谢谢! 问题1、按照你的操作找到问题原因了,ndf文件权限问题,移到D盘后还要给MSSQLSERVER授权。 问题2、切换分区时提示:'ALTER TABLE SWITCH' 语句失败。表'XXX' 已分区,但 索引'PK_XXX' 未分区。貌似主键唯一索引不会自动对齐,这种一般要怎么处理啊?
吉普赛的歌 版主 2020-09-14
  • 打赏
  • 举报
回复
引用 4 楼 jun471537173 的回复:
谢谢! 问题1、按照你的操作找到问题原因了,ndf文件权限问题,移到D盘后还要给MSSQLSERVER授权。 问题2、切换分区时提示:'ALTER TABLE SWITCH' 语句失败。表'XXX' 已分区,但 索引'PK_XXX' 未分区。貌似主键唯一索引不会自动对齐,这种一般要怎么处理啊?
把两个表弄成表结构完全一样吧, 包括主键、索引等都完全一致再操作。
吉普赛的歌 版主 2020-09-13
  • 打赏
  • 举报
回复
问题一正确操作方法:
--1. 设置脱机
USE [master]
GO
ALTER DATABASE test SET OFFLINE;  
GO
--2. 手动将文件移到新位置
--3. 语句设置新位置
ALTER DATABASE test MODIFY FILE
( NAME='test2',
FILENAME ='D:\test2.ndf');
GO
--4. 设置联机
ALTER DATABASE test SET ONLINE;  
GO
上面的操作, 是我验证过没有问题的。 参考链接: https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/move-user-databases?view=sql-server-ver15 问题二: 切换, 就是把数据从分区表移到另一个表。 数据都已经移走了, 那个分区已经没数据了, 要删除那个分区做什么?
吉普赛的歌 版主 2020-09-11
  • 打赏
  • 举报
回复
问题一: 你把实际操作,提示的错误信息贴出来。 问题二: https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-ver15 用语句将某个分区的内容移到同结构的中间表中, 再将这个表drop table 就是了。
jun471537173 2020-09-11
  • 打赏
  • 举报
回复
问题1、ALTER DATABASE [DB_TEST] MODIFY FILE (NAME = XXX_202009,FILENAME = 'D:\XXX_202009.ndf');---提示操作成功 停止数据库服务,移动文件,重新启动数据库服务后,DB_TEST显示恢复挂起,无法访问 问题2、切换后,那个分区能删掉吗?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧