ABS作为SQL中的约束

ABS作为SQL中的约束,sql,sql-server-2008,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 它们应该被认为是相同的,不被允许 谢谢

在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
它们应该被认为是相同的,不被允许


谢谢。

我想你已经试过了,但还是出错了

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


我想你已经试过了,但是出了一个错误

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


这是其中一次我会说试试看。我试过了,我不能完全按照贴出来的那样做,这就是为什么我说“类似”。也许有工作要做?这是其中一次我会说试试看。我试过了,我不能完全按照贴出来的那样做,这就是为什么我说“像这样”。也许有工作要做?谢谢,这听起来是个好主意。但是我有限制。我无法将字段添加到此表中。还有什么我能做的吗?我知道这不是唯一的限制。您必须通过触发器或执行插入的应用程序来强制执行。谢谢,这听起来是个好主意。但是我有限制。我无法将字段添加到此表中。还有什么我能做的吗?我知道这不是唯一的限制。您必须通过触发器或执行插入的应用程序来强制执行它。
ALTER TABLE myTable
ADD  ID_3 AS ABS(ID_1) 

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