删除我有一个表,这些字段如何执行逻辑与独特的领域分贝
Field 1 > ActivityID (PK, NOT NULL)
Field 2 > Alias (Unique) (NULL)
Field 3 > IsActive (NULL)
我想做一个逻辑删除我的意思是,我不希望删除的行。 我想将字段IsActive更改为0并将字段别名更改为NULL
但是我的问题是我无法将别名字段更改为NULL,因为他是唯一的。
当我需要删除唯一字段中的值时,如何使用唯一字段进行逻辑删除。
删除我有一个表,这些字段如何执行逻辑与独特的领域分贝
Field 1 > ActivityID (PK, NOT NULL)
Field 2 > Alias (Unique) (NULL)
Field 3 > IsActive (NULL)
我想做一个逻辑删除我的意思是,我不希望删除的行。 我想将字段IsActive更改为0并将字段别名更改为NULL
但是我的问题是我无法将别名字段更改为NULL,因为他是唯一的。
当我需要删除唯一字段中的值时,如何使用唯一字段进行逻辑删除。
如果您使用的是SQL 2008 &,请使用过滤后的索引在索引中不包含NULL。
SQL 2005和更早版本,别名本身不能有一个唯一的约束,可以是NULLable,并有很大的用处。所以,你可以使用计算列技术来解决这个问题。看到这个答案更多...
简而言之:你不能。声明为unique
的列要求该列中的每个值都是唯一的。具有多个null
值会违反该约束。
如果我理解正确。您的别名字段是唯一的,但允许空值。这意味着只能有一个空值的记录。
如果您需要多个记录在此字段中具有空值,则需要更改数据库设计,以使您的别名字段不唯一。
坦克... 我希望有一种方法可以做到这一点独特的领域 – Silagy 2011-03-02 06:56:29