name   number
CSDN      8
CSDN      0
现在表中有两个属性,假如一个是人名,另外一个是他签到的次数,假如签到次数达到8之后就要新建一个和上面一样的数据,现在就是不知道怎么可以知道签到次数为8,让后就新建一个数据.

解决方案 »

  1.   

    用触发器,每次检查
    if (select max(number) from tb where name   =xxx )=8
    begin
        select * into 新表 from tb where 1=2
    end上面写法里面如果是某一个人达到8 就实现,那么就不用where了
      

  2.   


    if (select max(number) from tb where name   =xxx )=8  请问你这句话怎么执行???
    delphi  貌似没有这样用的吧
    还有就是说可能你的值没有从数据库里面取出来,这段程序已经判断完了。
      

  3.   

    晕,delphi的你发到SQLServer干嘛?这是sql语句,在表上面创建,这样当表的数据到达8的时候自动创建一个新表。if (select max(number) from tb where name   =xxx )=8
     begin
         select * into 新表 from tb where 1=2
     end红字那里的表名你自己看怎么命名规则吧。你这个不用触发器也行,但是基本上只能用sql语句频繁查询这个表是否达到了8,这样开销也不小。
      

  4.   

    OK  我感觉我傻逼了一下,哈哈看着这个begin 和 end  还以为是delphi哩  哈哈我是菜鸟啊连SQL有if语句都不知道啊!肯跌啊。谢谢了满分给你
      

  5.   


    老兄再问个问题,就是如果我要判断两个属性同时满足时,那应该怎么写if语句啊。
    也就是说现在表里面要是有name number number1  当number 等于8 number1 等于5的时候新建一个数据
      

  6.   

    if (select max(number) from tb where name   =xxx )=8 and (select max(number1) from tb where name   =xxx )=5