对于一个小的销售相关的应用中,我们使用逻辑数据模型设计的数据库。 走到台前,以转换成物理模型。 虽然在SQL Server Management Studio快速创建表,根据我们的逻辑数据模型,我们需要两个属性结合起来,形成独特的ID。 是否有可能两个主键相结合,设置呢?
但同时观察罗斯文示例中,我们发现,在ORDER DETAILS
表格中,我们可以看到两个主键Order Id
和Product Id
。 而根据规则表不能有两个主键。 那么它是如何发生的罗斯文?
在我的情况我应该怎么在我的表组的两列,使其作为两个主键?
有人给建议像
为了使两个主键,在设计视图中打开表,并单击两个必填字段并保持CTL,应用主键
将这项工作?
编辑;
现在我的表必须在SSMS 2分PK的。 是有效的,或者它仅仅是一个combinationof 2 PKS
最简单的方法是使用SSMS Express中的T-SQL命令,而不是试图用视觉设计师.....
一旦你设计并创建表,尝试这样的事情:
ALTER TABLE dbo.YourTableNameHere
ADD CONSTRAINT PK_YourTableNameHere
PRIMARY KEY(Item_Id, Purchase_Id)
您不能创建在一个表中的两个主键。 您可以在表中合并两列,并作为一个单一的主键
create table table1
(
col1 int,
col2 varchar(20),
....
Primary key (col1, col2)
)
你不能有2个主键,但你可以有一个复合主键,这是由两列的关键,而这正是你与[的SalesOrderID]和[的SalesOrderDetail表得到了什么[SalesOrderDetailID]
CREATE TABLE [dbo].[tab2](
[col1] [int] NOT NULL,
[col2] [int] NOT NULL,
[col3] [nchar](10) NOT NULL,
[col4] [nchar](10) NOT NULL,
CONSTRAINT [PK_tab2] PRIMARY KEY CLUSTERED
(
[col1] ASC,
[col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]