Sql server 如果列是位字段,如何对其进行分区索引?

Sql server 如果列是位字段,如何对其进行分区索引?,sql-server,sql-server-2008,tsql,sql-server-2012,Sql Server,Sql Server 2008,Tsql,Sql Server 2012,我的表中有一个Bit列,由0和1组成。我需要在该列上创建分区索引。我尝试了以下问题,但我无法做到这一点。你能帮帮我吗 CREATE PARTITION FUNCTION IsLockedPF (bit) AS RANGE RIGHT FOR VALUES (0,1) GO CREATE PARTITION SCHEME myPartitionScheme AS PARTITION IsLockedPF ALL TO ([PRIMARY]) GO SELECT ps.name,pf.name,

我的表中有一个Bit列,由0和1组成。我需要在该列上创建分区索引。我尝试了以下问题,但我无法做到这一点。你能帮帮我吗

CREATE PARTITION FUNCTION IsLockedPF (bit)
AS RANGE RIGHT FOR VALUES (0,1)
GO
CREATE PARTITION SCHEME myPartitionScheme 
AS PARTITION IsLockedPF ALL TO ([PRIMARY]) 
GO
SELECT ps.name,pf.name,boundary_id,value
FROM sys.partition_schemes ps
INNER JOIN sys.partition_functions pf ON pf.function_id=ps.function_id
INNER JOIN sys.partition_range_values prf ON pf.function_id=prf.function_id


ALTER TABLE COE.OrdersTBU DROP CONSTRAINT PK_OrdersTBU
GO
ALTER TABLE COE.OrdersTBU ADD CONSTRAINT PK_OrdersTBU PRIMARY KEY NONCLUSTERED  (IsLocked)
   WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
         ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE CLUSTERED INDEX IX_TABLE1_partitioncol ON COE.OrdersTBU (IsLocked)
  WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
        ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
  ON myPartitionScheme(IsLocked)
GO
我的错误如下:

Msg 3728,第16级,状态1,第1行
“PK_OrdersTBU”不是约束条件。
Msg 3727,第16级,状态0,第1行
无法删除约束。请参阅前面的错误。
Msg 1505,第16级,状态1,第1行
CREATE UNIQUE INDEX语句终止,因为为对象名“coe.OrdersTBU”和索引名“PK_OrdersTBU”找到了重复的键。重复的键值为(0)。
Msg 1750,第16级,第0状态,第1行
无法创建约束。请参阅前面的错误。
声明已终止


我猜PK_OrdersTBU不是主键的名称,而是一个索引。试试这些:

如果是PK,应该告诉您:

select xtype from sysobjects where name = 'PK_OrdersTBU'
如果未返回任何记录,是否执行以下操作:

select * from sysindexes where name = 'PK_OrdersTBU'

如果是这样的话,你有一个索引,它们会以不同的方式被删除。

看起来你有一个重复的PK\u OrdersTBU