用于检查其他列的SQL Server约束

时间:2016-08-17 09:52:03

标签: sql sql-server tsql

产品:SQL Server

是否可以编写一个约束,检查其他列的值?在我的具体案例中,我将举一个例子:

让我们想象一下我有一个包含5列的表格:

A <- B <- D

假设其中包含以下值:

Name | Hobby1 | Hobby2 | Hobby3 | Hobby4

我尝试达到的目标如下: 如果有人试图插入:John Doe,钓鱼,阅读

它应该被阻止,因为我不想在前3列中使用相同的组合。

我是否可以通过约束来实现,或者我是否需要前3列的主键组合?

感谢您的回复。

2 个答案:

答案 0 :(得分:1)

为前三列添加唯一约束。

Sub loopCell()

Dim cell As range
For Each cell In range("p10:p200")

Next cell

End Sub

答案 1 :(得分:-2)

嗯,你可以像@jarlh所说的那样(在评论中)并确保订购爱好列,这将满足您的要求:

<button type="button" onclick="GetName()">Abe</button>
function GetName()
{

  var value = $("input[name='question1']:checked").val();
  var name = $('label[for=' + $("input[name='question1']:checked").attr("id") + ']').text();
}

...但是,这将允许以下感觉它应该是无效数据:

select unistr('\202D') || columnName  as columnNameDisplay
from BadTable