首页 新闻 搜索 专区 学院

SQL2005表分区问题

0
悬赏园豆:50 [已解决问题] 解决于 2009-06-12 09:06

我健立数据库后,创建了几个分区,

添加分区的代码我就不写了

下面是分区函数

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 行
无法创建约束。请参阅前面的错误消息。

要怎么解决呢?

後生哥哥的主页 後生哥哥 | 初学一级 | 园豆:23
提问于:2009-06-11 14:49
< >
分享
最佳答案
0

这是硬性规定,   没办法.
必须把分区列包含在主键/唯一约束/唯一索引的键列中,或者说分区列必须包含在主键里!
微软说明:http://msdn.microsoft.com/zh-cn/library/ms187526.aspx

具体可以看看这里:http://topic.csdn.net/u/20071119/10/47984fe7-6d25-40c4-ac0d-2b45795cb3c0.html

邀月 | 高人七级 |园豆:25375 | 2009-06-11 16:13
其他回答(1)
0

这个规定真的很杯具

stewen | 园豆:14 (初学一级) | 2012-03-06 15:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册