日期:2014-05-18  浏览次数:20771 次

在一个表中设置2个主键
我在作银行信贷数据库的时候,发现有的表要设置2个主键约束。一般情况下,主键约束只能设置一个,请问怎么设置2个????

原表数据:
表名 BankBillNumber
列名 描述 数据类型 空/非空 约束条件
BankSiteID 银行网点编号 char(8) Not   null PK
BillTypeId 单据类型编号 char(4) Not   null PK
BillNumber 单据流水编号 varchar(20) Not   null



------解决方案--------------------
设置两个主键或更多主键很正常啊
这叫联合主键


CREATE TABLE [dbo].[BankBillNumber](
BankSiteID char(8) Not null
BillTypeId char(4) Not null
BillNumber varchar(20) Not null
CONSTRAINT [PK_SBankBillNumber] PRIMARY KEY CLUSTERED
(
[BankSiteID] ASC,[BillTypeId] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
END
GO

------解决方案--------------------
CREATE TABLE BankBillNumber
(
BankSiteID char(8) not null,
BillTypeId char(4) not null,
BillNumber varchar(20) not null,
CONSTRAINT Bank_PK PRIMARY KEY (BankSiteID,BillTypeId)
)