图书表
BookID            char(15)    Unchecked
ISBN            char(10)    Checked
BookName    nvarchar(20)    Checked
Author            nvarchar(20)    Checked
PulishDate    datetime    Checked
Pulisher    nvarchar(20)    Checked
IsCancel    int            Checked
BookTypeID    char(10)    Checked注销表
CancelID    int            Unchecked
BookID            char(15)    Checked
CancelDate    datetime    Checked须要一个存储过程注销后‘注销表’里有记录,怎么写来着?

解决方案 »

  1.   

    你图书表有没有与其他表关联?如果有关联的话,那就要先删除引用了改BookID的所有记录,然后才能注销图书的。
      

  2.   

    create procedure DestoryBook
    @bookid char(15),
    @cancleid int
    as 
    begin
    --Book图书表
    --Destory注销表
    begin TRANSACTION  T
    delete from Book where BookID=@bookid
    insert into  Destory(CancelID,BookID,CancelDate)values(@cancleid,@bookid,getdate())
    commit TRANSACTION T
    end
      

  3.   

    create procedure DestoryBook
    @bookid char(15),
    @cancleid int
    as 
    begin
    --Book图书表
    --Destory注销表
    begin TRANSACTION  T
    update  Book set IsCancel=1 where BookID=@bookid--刚才没有看以这个字段,那这里应该是更新下
    insert into  Destory(CancelID,BookID,CancelDate)values(@cancleid,@bookid,getdate())
    commit TRANSACTION T
    end
      

  4.   


    顶,不过想一楼说的,你可以先删除引用了改BookID的所有记录,或者如果BookID是主键的话,你也可以在SQL里面设置一下自动更新数据
      

  5.   

    create procedure DBook 
    @bookid varchar(15)
    as 
    begin 
    begin TRANSACTION  T 
    insert into  Destory(CancelID,BookID,CancelDate)
    select iscancel,@bookid,getdate()) 
    delete from Book where BookID=@bookid 
    commit TRANSACTION T 
    end
      

  6.   

    你不是有个字段为IsCancel    int            Checked 吗?
    直接设置他应该就可以了吧。