CREATE PROCEDURE add_new_info
    @ksort     VARCHAR(30),
    @kdjh     VARCHAR(30),
    @kname     VARCHAR(30),
    @kcode    VARCHAR(30),
    @kmuch     int,
    @kprice numeric(18, 2),
    @ksum numeric(18, 2),
    @knote  nvarchar (100),
    @kdate  datetime,
    @now_much int output
AS    DECLARE @RC INT
    set nocount on     SELECT @RC=0
 if exists (select * from kdepot where kcode= @kcode and kname =@kname)
begin       
Select @now_much  =knumber from kdepot where kcode= @kcode and kname =@kname
end 
    if @now_much > @kmuch 
        begin
        SELECT @now_much=@now_much-@kmuch
            INSERT INTO ksell                 VALUES(@ksort,@kdjh,@kname,@kcode,@kmuch,@kprice,@ksum,@knote,@kdate)
       
        SELECT @RC=@@ERROR
            IF @RC<>0
                Begin
SELECT 'Can not insert record into Kexama'
                select @now_much  =-2
               End
            else
            begin
                UPDATE kdepot SET kmuch =kmuch -@kmuch,ksum =ksum -@ksum where                 kcode= @kcode and kname =@kname
           
                SELECT @RC=@@ERROR
                IF @RC<>0
                    SELECT  'Can not insert record into Kexama'
                    select @now_much  =-3
             endend
else
     Select @now_much  =-1
這是改后的

解决方案 »

  1.   

    if..
              begin
                ...
              end          else
              begin
                ...
              end
       就行了
      

  2.   

    谢谢 yinzhen !!!
    按你写的语法检测通过,可又出现:
    错误 21037: [sql - dmo] 在 text 属性的 "create ... "语名中指定的名称必须与 name 属性匹配,而且后必须跟有效的的tsql语句。
    这是怎么回事?第一次遇到!!!在线等待!