小编Joe*_*con的帖子

SQL 条件唯一约束与同一表中的 Where 子句

我有一个表,我想确保五列的组合在该表中保持唯一。例如:

ALTER TABLE [dbo].[MyTable] 
    ADD CONSTRAINT [UQ__MyTable.MFG.Model.Class.Depiction.Iteration] 
        UNIQUE NONCLUSTERED 
        (
         [ManufacturerID] ASC,
         [Model] ASC,
         [BlockClassID] ASC,
         [BlockDepictionID] ASC,
         [BlockIterationID] ASC
        )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
            SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, 
            ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) 
    ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

我想排除第六个单独列具有特定值的组合。例如,我只想在列 [Flag] = 0 时强制执行上述约束,并在列 [Flag] = 1 时排除强制执行。

sql sql-server conditional unique-constraint sql-server-2008-r2

2
推荐指数
1
解决办法
6415
查看次数