0

我正在尝试在 SQL Azure 联合中创建一个唯一列,但即使以下查询创建了一个表,我仍然能够将条目保存到具有相同 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
4

1 回答 1

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

然后,您将拥有一个包含联合的主键和一个单独的唯一约束。

于 2012-09-26T05:45:15.533 回答