我健立数据库后,创建了几个分区,
添加分区的代码我就不写了
下面是分区函数
create PARTITION FUNCTION table_part (int) AS
RANGE LEFT FOR VALUES(5000,10000,15000,20000)
GO
CREATE PARTITION SCHEME table_part_scheme AS
PARTITION table_part TO
([F1],[F2],[F3],[F4],[F5])
GO
create table UserInfo
(
[id] int identity(1,1) primary key ,
[username] varchar(20) not null ,
[password] varchar(20) not null
)
ON table_part_scheme([id])
/*添加约束*/
alter table UserInfo add constraint UQ_UserName UNIQUE(username) on table_part_scheme([id])
执行的时候报了
消息 1908,级别 16,状态 1,第 1 行
列 'id' 是索引 'UQ_UserName' 的分区依据列。唯一索引的分区依据列必须是索引键的子集。
消息 1750,级别 16,状态 0,第 1 行
无法创建约束。请参阅前面的错误消息。
要怎么解决呢?
这是硬性规定, 没办法.
必须把分区列包含在主键/唯一约束/唯一索引的键列中,或者说分区列必须包含在主键里!
微软说明:http://msdn.microsoft.com/zh-cn/library/ms187526.aspx
具体可以看看这里:http://topic.csdn.net/u/20071119/10/47984fe7-6d25-40c4-ac0d-2b45795cb3c0.html
这个规定真的很杯具