我有一张桌子,有两列
key -> Primary Key, auto incremented
reqNumber -> This is a custom generated value
reqNumber 的结构为年/月/日/数字,其中数字是当天发出请求的次数。因此,例如,如果今天发出 3 个请求,昨天发出 2 个请求,则该表将
key reqNumber
1 2013/07/16/001
2 2013/07/16/002
3 2013/07/17/001
4 2013/07/17/002
5 2013/07/17/003
我遇到的问题是有时多个用户同时保存。执行保存的 proc 首先检查今天创建了多少个,然后将其加 1,因此对于上面的内容,它会看到今天创建了 3 个,因此下一个将是 4 个。之后它会进行插入。
但是如果两个用户同时点击保存,他们都得到 4,这意味着当插入发生时,我得到 2013/07/17/004 两次。
有没有办法在 SQL 或 .Net 中避免这种情况?锁是唯一的方法吗,那些会降低性能的正确方法?