在 SQL Server 2008 R2 中,我有一个具有以下结构的表
(
Id INT NOT NULL PRIMARY KEY,
Left1 INT NOT NULL,
Left2 INT NULL,
Right1 NVARCHAR(128) NOT NULL,
Right2 NVARCHAR(128) NOT NULL,
Right3 NVARCHAR(128) NULL,
Right4 NVARCHAR(128) NULL,
Right5 NVARCHAR(128) NULL,
Right6 NVARCHAR(128) NULL
)
用于将来自系统(“左”)的左 1 和左 2 映射到右 1-6,再到另一个系统(“右”)。
我需要确保左列是唯一的,我已经使用唯一索引完成了,并且左右组合也是唯一的。
我不能在这里使用索引,因为支持的最大列大小是 900 字节。我需要避免在 Left、Right 和 Left2Right 中拆分表格——因为我的用例太乏味且容易出错。
执行组合唯一性的正确方法是什么?
我的要求是:
- 在整个表中,Left1 和 Left2 必须没有具有相同值的行(已解决)
- 在整个表中,Left1、Left2、Right1、Right2、Right3、Right4、Right5、Right6 必须没有具有相同值的行(我需要帮助)