--试试这样处理/*
查询loginRecord表中是否有该网吧当天数据,
如果没有,向数据表中插入记录
如果有  ,当该数据NUM+1
*/
CREATE PROCEDURE AddloginRec
@InternetBar_Code varchar(23),
@LoginTime         datetime
AS
declare @Num       intset @LoginTime=convert(char(10),@LoginTime,120)   --加上这句select @Num =
(select count(*) as countnum from loginRecord
where InternetBar_Code=@InternetBar_Code and LoginTime=@LoginTime)if (@Num = 0 or @Num is null)
begin
insert into loginRecord (InternetBar_Code,LoginTime,Num) values (@InternetBar_Code,@LoginTime,1)
end 

if (@Num > 0)
begin
set  @Num =  @Num + 1
update loginRecord set Num = @Num where InternetBar_Code=@InternetBar_Code and LoginTime=@LoginTime
end
select @Num 'Num'

解决方案 »

  1.   

    是我逻辑上错了,贴出正确的。
    CREATE PROCEDURE AddloginRec
    @InternetBar_Code varchar(23),
    @LoginTime datetime
    AS
    declare @Num int
    -- 获取当天记录数
    select @Num =
    (select Num as countnum from loginRecord
    where InternetBar_Code=@InternetBar_Code and LoginTime=@LoginTime)--没有当天记录
    if (@Num = 0 or @Num is null)
    begin
    insert into loginRecord (InternetBar_Code,LoginTime,Num) values (@InternetBar_Code,@LoginTime,1)
    end --有当天记录
    if (@Num > 0)
    begin
    set  @Num =  @Num + 1
    update loginRecord set Num = @Num where InternetBar_Code=@InternetBar_Code and LoginTime=@LoginTime
    end select @Num 'Num'