入库登记的处理:
该处理将同时涉及数据表Storage和数据表RegisterIn。一条完整的入库登记数据要求同时包含Storage表与RegisterIn表的全部属性。
由于入库登记可能出现两种类型:
一种是仓库内已有库存记录的同类物品的入库(也就是库存物品信息表Storage中已经分配一个库存物品代码strid的物品);
另一种是没有库存记录的新物品入库登记。
要求在向数据表RegisterIn新增一条入库记录时,n    要针对以上两种不同的情况进行分别处理:
对于已有的库存物品入库:不必生成新的库存物品代码strid,要求使用已存在的库存物品代码,每向RegisterIn表增加一条新数据,Storage表中相应的字段amount_stored(库存数量)的值必须是原有数量再加上现在入库数量的和,而且必须完全保持同步修改。由于该物品已经在Storage表中有描述信息,因此,RegisterIn表增加一条新数据时无须再在Storage内增加描述信息。
对于没有库存记录的新物品入库:必须在Storage表中已有的库存物品代码strid的基础上,由系统自动生成一个不重复的新的strid,并且要将此strid作为RegisterIn表中新数据的strid,Storage表中相应的字段amount_stored(库存数量)的值必须是现在的入库数量,而且也必须完全保持同步修改。
由于该物品在Storage表中没有描述信息,因此,RegisterIn表中每增加一条新数据时都必须在Storage内增加该物品的描述信息。




CREATE PROCEDURE dbo.proc_register_in_old
@strid numeric(5,0),
@unit int ,
@amount_in int ,
@price smallmoney ,
@making_place varchar(20) ,
@who_concerned varchar(20) ,
@datein smalldatetime ,
@memo text 
AS
    BEGIN 
if((select strid from Storage where strid=@strid)!=NUll)   
{
     select @memo=memo from Storage,
     select @memo=memo from Storage
    insert into RegisterIn values (@strid,
                                   @unit,
                                    @amount_in,
                                    @price,
                                    @making_place,
                                     @who_concerned,
                                      @datein,
                                        @memo )
}else{
     insert into RegisterIn values ( 
        declare @maxstrid numeric(5,0)
         select @maxstrid=MAX(strid) from Storage
         insert into RegisterIn values (
                                 @maxstrid+1,
                                  @unit,
                                    @amount_in,
                                    @price,
                                    @making_place,
                                     @who_concerned,
                                      @datein,
                                        @memo ) 
                                 
        
}
        
    END


SYBASE提示SQL查询中的转义序列不对?这是为什么?