唯一约束与预检查

And*_*ndy 2 sql sql-server database-design

我使用SQL Server 2008,并且我有一个表格,其中包含varchar(X)类型的列,我希望它具有唯一值.

实现这一目标的最佳方法是什么?我应该使用唯一约束并捕获异常,还是应该在插入新值之前进行预先检查?

一个问题,许多用户使用该应用程序,因此我猜如果两个用户将插入相同的值,预检查可能会导致竞争条件.

谢谢

Dav*_*har 9

比赛条件是一个值得注意的优秀点.

为什么不两个都做? - 预先检查,以便您可以向用户提供良好的反馈,但绝对有唯一的约束作为您的最终保障.