【发布时间】:2013-05-22 22:17:10
【问题描述】:
我正在尝试通过锁定 sql server 2008(或直接从 asp.net mvc 如果可能的话)做一些简单的事情,但不确定如何处理它。
我有一个表(称为用户),用户名必须是唯一的。我想做一些类似
的事情var myuser = db.users.FirstOrDefault(u => u.username == username);
if(myuser == null)
{
myuser = new user(username);
db.users.add(myuser);
}
return myuser;
我需要它是原子的,这样没有人可以在其他人之后尝试插入用户 foo。如果这可以从 asp.net mvc 实现,那将是完美的,但如果不能,我需要直接在存储过程中进行。在存储过程中锁定正确的方法吗?如果是这样,我是否需要锁定整个用户表?在网上查找时,我也看到了一些带有 merge 关键字的东西,但我不确定这是否会有所帮助。
【问题讨论】:
标签: sql-server asp.net-mvc sql-server-2008 locking