ABS作为SQL中的约束

时间:2013-11-21 17:57:05

标签: sql sql-server-2008

是否可以在sql 2008中将绝对值作为约束。这样的事情:

ALTER TABLE [dbo].[myTable] WITH NOCHECK ADD 
CONSTRAINT [IX_Blah] UNIQUE  NONCLUSTERED 
(
    ABS([ID_1]),
    [ID_2]
)  ON [PRIMARY] 

在我的表中,ID_1可能是否定的。所以我需要确保我没有

的记录
ID_1   ID_2
  1     1
 -1     1

它们应被视为相同且不被允许。

谢谢。

1 个答案:

答案 0 :(得分:4)

我假设你已经尝试过并且出错了。

不,唯一约束不能包含公式。但可以计算列具有唯一约束:

ALTER TABLE myTable
ADD  ID_3 AS ABS(ID_1) 

ALTER TABLE [myTable]ADD 
CONSTRAINT [IX_Blah] UNIQUE  NONCLUSTERED 
(
    [ID_3],
    [ID_2]
)