在 SQL Server 中,当一个表的主键由多个列组成时,这个主键被称为复合主键(Composite Primary Key)。如果另一个表想要引用这个表,就需要使用这个复合主键作为外键(Foreign Key)来建立关联关系。
建立外键引用时,需要在另一个表中创建一个列或多个列,用来存储引用复合主键的每个组成部分。例如,如果表 A 的主键是由列 column1 和 column2 组成的,那么在表 B 中创建外键时,需要创建一个列或多个列,用来存储 column1 和 column2 的值。
下面是一个示例 SQL 语句,用来创建一个外键引用复合主键:
CREATE TABLE TableA
column1 INT NOT NULL,
column2 INT NOT NULL,
column3 VARCHAR(50),
CONSTRAINT PK_TableA PRIMARY KEY (column1, column2)
CREATE TABLE TableB
column4 INT NOT NULL,
column5 INT NOT NULL,
column6 VARCHAR(50),
TableA_column1 INT NOT NULL,
TableA_column2 INT NOT NULL,
CONSTRAINT FK_TableB_TableA FOREIGN KEY (TableA_column1, TableA_column2)
REFERENCES TableA (column1, column2)
在上面的示例中,TableA 表的主键是由 column1 和 column2 两列组成的。在 TableB 表中,创建了两列 TableA_column1 和 TableA_column2,用来存储引用 TableA 表主键的两个组成部分。然后,使用 FOREIGN KEY 关键字来创建外键,并指定它引用了 TableA 表的主键。
希望这个回答对您有帮助,如果您还有其他问题,请继续提问。