MSSQL为子查询创建表CHECK

时间:2014-07-25 07:18:54

标签: sql sql-server subquery triggers check-constraint

我想在“CREATE TABLE CHECK”中不允许任何子查询(仅允许当前值)。但我想检查表中当前行外的条件,如下所示:

伪代码:

CREATE TABLE Persons
(
LoginName varchar(128) NOT NULL CHECK (OLNY ONE of following can be duplicate to an existing record: LoginName, LastName or FirstName. Other two may not),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255)
)

我想检查一下这个条件:检查(下面的OLNY一个可以复制到现有记录:LoginName,LastName或FirstName。其他两个可能没有)

怎么做? (请写下代码,不仅仅是提示.Thanx)

示例数据

现有:

  • Jannie,Smith,Jane,Elm Str。
  • Johnie,Smith,John,Elm Str。
  • Alvaro,Jimenez,Alvaro,5th Av。

允许插入/更新:

  • Greenhorn,Prochazka,Martin,MyStreet#1
  • Johnie ,Robot,No5,Army Str。
  • GodLike, Smith ,No5,Army Str。

不允许:

  • Johnie,Smith,John ,Route 66
  • Alvaro ,罗马, Alvaro ,Down Str。
  • Alvaro ,罗马, John ,Down Str。

最简单地了解不允许的内容:如果其中一个“名称”值重复,则其余值必须是唯一的

0 个答案:

没有答案