0

我有一个带有主键(自动递增)和外键的 sql 表。现在我需要通过将外键修改为第二个主键来修改表,这样它的值就不允许重复。

如何在不影响数据的情况下更改表格?需要sql代码。

问候, 维克斯

4

1 回答 1

1

如果我理解您的请求,您希望强制外键在给定表中是唯一的,因此您的架构如下所示:

Create Table Table1
(
    Id int not null primary key clustered
    , ForeignId not null
    , ...
    , Constraint FK_Table1_Table2
        Foreign Key ( ForeignId )
        References Table2( Id )
)

你现在想强制 ForeignId 在这个表中是唯一的,对吗?您将执行以下操作:

Alter Table Table1
    Add Constraint UC_Table1_ForeignId Unique Nonclustered ( ForeignId )
于 2010-04-03T04:23:23.467 回答