我不确定如何提出这个问题。我有一个包含多个列的表,包括一个 id 列、一个外键列“JobId”和一个“GxpId”列。
我要求一个“JobId”最多可以有一个“GxpId”,但该表可以有多个具有相同“JobId”和“GxpId”的行。
有一个单独的进程正在将数据导入表中,并且使用该表的应用程序失败,因为导入进程创建了具有相同“JobId”但不同“GxpId”的两行。
我想向表中添加一个约束,以确保特定“JobId”的任何行都必须具有相同的“GxpId”。希望这是有道理的。
我不确定如何提出这个问题。我有一个包含多个列的表,包括一个 id 列、一个外键列“JobId”和一个“GxpId”列。
我要求一个“JobId”最多可以有一个“GxpId”,但该表可以有多个具有相同“JobId”和“GxpId”的行。
有一个单独的进程正在将数据导入表中,并且使用该表的应用程序失败,因为导入进程创建了具有相同“JobId”但不同“GxpId”的两行。
我想向表中添加一个约束,以确保特定“JobId”的任何行都必须具有相同的“GxpId”。希望这是有道理的。
在 SQL Server 中,您需要一个两步过程来执行此操作。检查约束中不能有复杂的逻辑,但它可以引用一个可以的函数。
对于模式的设计方式,此约束是一个非常大的危险信号。查看您的其他问题,您似乎已经意识到这一点并且可以使用的选项有限。