【问题标题】:SQL Server Unique Constraint in a Category According To FK根据 FK 的类别中的 SQL Server 唯一约束
【发布时间】:2011-10-11 07:50:16
【问题描述】:

下面的代码非常适合创建Unique Constraints

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

我有一个名为 Products 的表,它具有另一个名为 Categories 的表的 FK。想象一下下面的列表是类别:

软件

电影

音乐

我需要在 Products 表内的 ProductName 列的类别内有一个唯一约束。例如,Products 表中有两个相同的 ProductName 列属于不同类别但不在同一类别中是可以的。

我在SQL Server 2008 R2。有什么想法吗?

【问题讨论】:

    标签: sql sql-server sql-server-2008 constraints sql-server-2008-r2


    【解决方案1】:

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

    的复合唯一约束

    示例语法

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

    【讨论】:

    • 谢谢。我想我需要一个包含两列的约束,但我无法弄清楚如何。任何代码示例或资源?
    • @tugberk -我在我的答案中添加了示例语法。 See BOL for full details.
    • 太酷了@Martin。谢谢。我没试过,但我确定是那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 2011-02-17
    • 2011-01-11
    相关资源
    最近更新 更多