SQL Server分区键列必须是主键一部分

时间:2021-06-05 22:30:02

SQL Server分区键列必须是主键一部分。

必须把分区列包含在主键/唯一约束/唯一索引的键列中。

USE tempdb
GO -- 测试表
CREATE TABLE dbo.tb(
id int,
CONSTRAINT PK_id PRIMARY KEY CLUSTERED(
id)
)
INSERT dbo.tb
SELECT 1 UNION ALL
SELECT 10
GO -- 切换为分区表
-- 分区函数
CREATE PARTITION FUNCTION PF_test(int)
AS RANGE LEFT
FOR VALUES(5) -- 分区架构
CREATE PARTITION SCHEME PS_test
AS PARTITION PF_test
ALL TO(
[PRIMARY]) -- 切换到分区表
ALTER TABLE dbo.tb
DROP CONSTRAINT PK_id
WITH(
MOVE TO PS_test(id))