SQL Server中的复合主键

时间:2019-01-17 15:26:20

标签: sql-server

我正在尝试在Sql Server中创建一个复合主键。 我尝试过的语法是:

create table Installment_details
(
 constraint P_key primary key(Account_No,month),
 Account_No int not null,
     foreign key (Account_No) references Account_details(Account_no) on delete cascade,
 Month char(15) not null,
 D@te date,
 Receipt_no varchar(15),
 Amount_received int,
 Amount_left int,
 Amount_receiver char(50),
)

据我所知,它应该为主键创建一个列名称为P_key的列,但是每当我在表中输入一个条目时,它都不会显示此列。

enter image description here

2 个答案:

答案 0 :(得分:1)

您对所使用的术语感到困惑。主键和列是不同的。例如,您要基于两个现有列创建一个主键,名称P_Key是主键的名称,这是SQL SERVER(在这种情况下)可以识别表中行的方式(不能是两列的值相同的两行)。 我希望这可以澄清一些问题。

答案 1 :(得分:1)

我认为您弄错了,代码中的P_key是约束名称而不是列名称。 同样,复合键不是列,当您没有具有唯一值的列时使用。因此,您将两列或更多列的组合作为主键,以便我们可以唯一地标识一行。

相关问题