日期:2014-05-17  浏览次数:20411 次

SQL数据库的一些简单的问题
name   number
CSDN      8
CSDN      0


现在表中有两个属性,假如一个是人名,另外一个是他签到的次数,假如签到次数达到8之后就要新建一个和上面一样的数据,现在就是不知道怎么可以知道签到次数为8,让后就新建一个数据.
------最佳解决方案--------------------
用触发器,每次检查
if (select max(number) from tb where name   =xxx )=8
begin
    select * into 新表 from tb where 1=2
end

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

上面写法里面如果是某一个人达到8 就实现,那么就不用where了


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

------其他解决方案--------------------
晕,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,这样开销也不小。
------其他解决方案--------------------
引用:
晕,delphi的你发到SQLServer干嘛?这是sql语句,在表上面创建,这样当表的数据到达8的时候自动创建一个新表。

if (select max(number) from tb where name   =xxx )=8
 begin
     select * into 新表 from tb where 1=2
 end

红字那里的表名你自己看……

OK  我感觉我傻逼了一下,哈哈看着这个begin 和 end  还以为是delphi哩  哈哈我是菜鸟啊连SQL有if语句都不知道啊!肯跌啊。谢谢了满分给你
------其他解决方案--------------------
引用:
if (select max(number) from tb where name   =xxx )=8
 begin
     select * into 新表 from tb where 1=2
 end
红字那里的表名你自己看……


老兄再问个问题,就是如果我要判断两个属性同时满足时,那应该怎么写if语句啊。
也就是说现在表里面要是有name number number1  当number 等于8 number1 等于5的时候新建一个数据
------其他解决方案--------------------
if (select max(number) from tb where name   =xxx )=8 and (select max(number1) from tb where name   =xxx )=5
------其他解决方案--------------------
引用:
if (select max(number) from tb where name   =xxx )=8 and (select max(number1) from tb where name   =xxx )=5

哈哈大牛刚才试试弄好 刚想撤回哩,嘿嘿谢谢了