none
如何插入不相同的记录并获得操作结果 RRS feed

  • 问题

  • 如题,用户注册时,用户名是不能重复的,如何判断插入的记录不重复呢?
    请看清楚我的题目,不要从网上抄一些答案过来,网上很多人写的先select再insert的都是瞎扯,压根就没考虑到并发性问题,我现在不想加上序列化隔离级别,有没有好一点的解决方案
    我要求输出@_Output INT
    输出大于零表示@@IDENTITY
    等于0表示存在相同记录
    等于负数表示发生错误。
    2010年1月12日 9:47

答案

  • 你好!

    在数据库中将用户名设置为主键或设置唯一约束,这样不管你采用什么方式用户名都不会重复。



    知识改变命运,奋斗成就人生!
    2010年1月12日 9:58
    版主
  • 貌似我找不到结帖子的地方了,麻烦版主帮我把这帖子结了吧,我还是根据@@ERROR最终的数值来判断吧。

    • 已标记为答案 YiChun Chen 2010年1月13日 10:19
    2010年1月13日 2:19

全部回复

  • 你好!

    在数据库中将用户名设置为主键或设置唯一约束,这样不管你采用什么方式用户名都不会重复。



    知识改变命运,奋斗成就人生!
    2010年1月12日 9:58
    版主
  • 这个我知道啊,但这样我要根据@@ERROR具体的数值来判断到底是发生了主键重复还是其他错误,有没有其他的简单的方法,
    不过貌似没有
    插入不重复记录
    要么锁表
    要么更具插入的错误来判断结果
    2010年1月12日 10:12
  • 貌似我找不到结帖子的地方了,麻烦版主帮我把这帖子结了吧,我还是根据@@ERROR最终的数值来判断吧。

    • 已标记为答案 YiChun Chen 2010年1月13日 10:19
    2010年1月13日 2:19