【发布时间】:2012-07-19 16:36:33
【问题描述】:
对于一个小型销售相关的应用程序,我们使用逻辑数据模型设计了数据库。上台转换成实体模型。在 SQL Server Management Studio Express 中创建表时,根据我们的逻辑数据模型,我们需要将两个属性结合起来形成唯一的 id。是否可以组合两个主键并设置它?
但是在观察 Northwind Sample 时,我们发现在ORDER DETAILS 表中,我们可以看到两个主键Order Id 和Product Id。并且根据规则表不能有两个主键。那么它是如何在北风发生的呢?
在我的情况下,我应该如何在我的表中设置两列以使其成为两个主键?
有人提出了类似的建议
要创建两个主键,请在设计视图中打开表格并单击 在两个必填字段上并持有 CTL,应用主键
这行得通吗??
编辑;
现在我的桌子在 SSMS 中有 2 个 PK。它是有效的还是只是2个pks的组合
【问题讨论】:
-
您的表只能有 一个 主键 - 您可能是指有一个包含两列的主键 - 对吧?
-
我认为您的意思是“复合主键”而不是“两个主键”。在 Northwind 中,订单 ID 在订单详细信息中不是唯一的,产品 ID 也不是唯一的。这种组合是独一无二的。我想你已经知道了,但你的措辞并不明显。
-
@marc_s 我刚刚附上了问题中表格的屏幕截图,它只是2个键的组合吗??
-
是的,这只是一个键中两列的组合。
-
@AaronBertrand 那么如何在 SQL 中使用它呢?例如在 "Select * from Stack where _____? 中如何使用这个组合
标签: ssms sql-server-express database composite-primary-key