0

我猜“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 一个可以与现有记录重复:登录名、姓氏或名字。其他两个可能不会)

怎么做?(请写代码,不只是提示。谢谢)

样本数据

现存的:

  • 珍妮,史密斯,简,榆树海峡。
  • 约翰尼,史密斯,约翰,榆树海峡。
  • 阿尔瓦罗, 希门尼斯, 阿尔瓦罗, 5th Av.

允许插入/更新:

  • Greenhorn、Prochazka、Martin、MyStreet#1
  • 约翰尼,机器人,5 号,陆军 Str。
  • GodLike,史密斯,No5,Army Str。

不允许:

  • 约翰尼,史密斯,约翰,66 号公路
  • 阿尔瓦罗,罗马,阿尔瓦罗,下海峡。
  • 阿尔瓦罗、罗曼、约翰、唐斯特。

为了最容易理解什么是不允许的:如果“名称”值之一是重复的,其余的必须是唯一的

4

0 回答 0