1.求一个存储过程
一个表有两个字段
[name]  varchar
[count] int假设name为用户名,每次用户登录,如果用户存在则count+1,如果不存在则保存一条新的记录,并设置count=12.分布式的数据库数据一致性问题
分布在不同机器上的数据库如何做到数据一致性?能设置主外键约束吗?

解决方案 »

  1.   

    1.
    create procedure CalcLoginCount
        @UserName varchar(50)
    as
    begin
       if not exists(select * from [YourTable] where name = @UserName)
          begin
             insert into [YourTable](name,count) values(@UseName, 1)
          end
       else
          begin
             update [YourTable] set count = count + 1 where name = @UserName
          end
    end
      

  2.   

    if exists(select 1 from T where [name]=@name)
    update T set [count]=[count]+1
    where [name]=@name
    else
    insert T values(@name , 1)
      

  3.   

    create proc sp_login
    @username nvarchar(50)
    as 
    begin
          if exists(select 1 from tablelogin where username=@username)
              update tablelogin set count=count+1 where username=@username
         else
            insert into tablelogin select @username,1
    end
    go
      

  4.   

    不好意思第一个问题需要返回id
    1.求一个存储过程
    一个表有两个字段
    [id] int
    [name]  varchar
    [count] int假设name为用户名,每次用户登录,如果用户存在则count+1,如果不存在则保存一条新的记录,并设置count=1,同时返回id(id自增)