我正在尝试在SQL Azure Federation中创建一个唯一的列,但即使以下查询创建了一个表,我仍然可以使用相同的Column1值将条目保存到表中。设置唯一列的正确方法是什么?我需要确保ID是联合uniqueidentifier列,而为了本演示的目的,Column1不能有重复的值。
CREATE TABLE dbo.Table1(
ID uniqueidentifier NOT NULL,
Column1 nvarchar(50) NOT NULL,
Column2 nvarchar(15) NULL,
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
ID ASC
),
CONSTRAINT [PK_Table2] UNIQUE NONCLUSTERED
(
ID ASC,
Column1 ASC
)
) FEDERATED ON ([dist] = ID)
GO
答案 0 :(得分:0)
没有测试,你不能这样做
CREATE TABLE dbo.Table1(
ID uniqueidentifier NOT NULL,
Column1 nvarchar(50) NOT NULL,
Column2 nvarchar(15) NULL,
CONSTRAINT [PK_Table1] UNIQUE NONCLUSTERED
(
ID ASC,
Column1 ASC
)
) FEDERATED ON ([dist] = ID)
GO
CREATE UNIQUE INDEX uix_table1_column1 ON Table1(Column1)
GO
然后,您将拥有一个包含联合的主键和一个单独的唯一约束。