【发布时间】:2012-04-17 17:50:27
【问题描述】:
Asp.net 会员 2.0。
我想更新表aspnet_user中的用户名,最好的方法是直接更新表。
UPDATE aspnet_Users SET UserName = @UserName,LoweredUserName = LOWER( @UserName)
WHERE UserName = @CurrentUname
如何保证其唯一性?
谢谢,
更新: If not exist (select UserName from aspnet_Users)
Begin
UPDATE aspnet_Users SET UserName = @UserName,LoweredUserName = LOWER( @UserName)
WHERE UserName = @CurrentUname
End
如何修改上面的代码?
第二次更新:
If not exist (select UserName from aspnet_Users WHERE UserName = @CurrentUname)
Begin
UPDATE aspnet_Users SET UserName = @UserName,LoweredUserName = LOWER( @UserName)
WHERE UserName = @CurrentUname
End
SELECT 1;
else
select 0;
【问题讨论】:
-
A ... "unique constraint"?
-
这真的是最好的更新方式吗?您是否只需要查询表以查看是否已经存在具有该名称的用户 - 如果您可以为更新编写查询,您不能为此编写一个 SELECT 查询吗?
-
如果新用户名已经存在,我想阻止它。
-
@pst 这可能是 ASP.NET SqlMembershipProvider 的表 - 我会担心这样做,因为默认代码可能无法优雅地处理唯一性异常
-
if not exist()中也需要WHERE UserName = @UserName。但是,如果您在 SQL 中进行检查,您还需要从此 sn-p 返回成功/失败。
标签: asp.net sql tsql asp.net-membership