0

下面的代码的伟大工程创建Unique ConstraintsSQL Server的唯一约束的范畴,根据FK

ALTER TABLE <tablename> ADD CONSTRAINT 
      <constraintname> UNIQUE NONCLUSTERED 
    (
       <columnname> 
    ) 

我有一个名为Products表具有FK的另一个表称为Categories。试想一下,下面的列表分类:

软件

电影

音乐

我需要在这里是有一个类别内的唯一约束我的内ProductsProductName列表。例如,可以在Products表中的另一个类别中使用两个相同的ProductName列,但不在同一个类别中。我是SQL Server 2008 R2。有什么想法吗?

回答

4

您可以将多个列添加到唯一约束或唯一索引定义中。你需要有两列ProductName, CategoryId

示例语法

ALTER TABLE Products ADD CONSTRAINT some_name 
     UNIQUE NONCLUSTERED(ProductName, CategoryId) 
+0

感谢复合唯一约束。我想我需要两列的约束,但我很难弄清楚如何。任何代码示例或资源? – tugberk

+1

@tugberk - 我的答案中添加了示例语法。 [详情请参阅BOL。](http://msdn.microsoft.com/en-us/library/ms188066.aspx) –

+0

很酷@Martin。谢谢。我没有尝试,但我确定它是一个。 – tugberk