SqlServer 2000  
一个表 ShiLi
create table ShiLi

ID int identity(1,1) primary key
beforedate datetime,
afterdate  datetime,
tianshu int
)怎么让 tianshu中的数据是 afterdate-beforedate  的天数了??
假设afterdate  是在  beforedate 后面的 

解决方案 »

  1.   

    create   table   ShiLi 
    (
    ID   int   identity(1,1)   primary   key, 
    beforedate   datetime, 
    afterdate     datetime, 
    tianshu   as datediff(dd,beforedate,afterdate)

    insert shili select getdate(),getdate()
    union all select '2007-1-1','2008-9-7'
    select * from shilidrop table shili
      

  2.   

    select *,[天数]=DATEDIFF(dd,beforedate,afterdate) from ShiLi
      

  3.   

    create   table   ShiLi 
    ( 
    ID   int   identity(1,1)   primary   key 
    beforedate   datetime, 
    afterdate     datetime, 
    tianshu   as  datediff(day, beforedate, afterdate)
    ) 
      

  4.   

    楼上正解,也可定义触发器
    create trigger trigIU_shili on shili
    for insert,update
    as 
     if update(beforedate) or update(afterdate) 
        update a 
        set tianshu=datediff(day,beforedate,afterdate)
        from shili a,inserted b where a.id=b.id 
      

  5.   


    一个表   ShiLi 
    create   table   ShiLi 
    ( 
    ID   int   identity(1,1)   primary   key 
    beforedate   datetime, 
    afterdate     datetime, 
    tianshu   int 
    ) 
    -----------------------
    update shili se tianshu=datediff(dd,afterdate,beforedate)