小编Cat*_*han的帖子

SQL(在我的例子中是 SQL Server)如何评估多个列上的唯一约束?

给出下表

CREATE TABLE example (
    id int NOT NULL IDENTITY(1,1),
    strA NVARCHAR(10) NULL,
    strB NVARCHAR(10) NULL,
  CONSTRAINT [pk_id] PRIMARY KEY (id)
  CONSTRAINT [unq_str_combo] UNIQUE (strA, strB)
  CONSTRAINT [chk_one_is_null] CHECK ((strA IS NULL AND strB IS NOT NULL) OR (strA IS NOT NULL AND strB IS NULL))
);
Run Code Online (Sandbox Code Playgroud)

SQL 如何确定 strA 和 strB 列中的值组合是否是唯一组合?

以下任何INSERT陈述是否会失败?

INSERT INTO dbo.example (strA, strB) VALUES ('abc', NULL);    -- A
INSERT INTO dbo.example (strA, strB) VALUES (NULL, 'def');    -- B
INSERT INTO dbo.example (strA, …
Run Code Online (Sandbox Code Playgroud)

sql-server check-constraints unique-constraint

1
推荐指数
2
解决办法
751
查看次数