这样试试呢?
CREATE PROCEDURE 注册 (@p1  [char](200),
 @p2  [char](100),
 @p3  [char](100))AS
declare @sj [char](100)
declare @gs[char](200)
declare @rgs[int]
declare @xygs [int]
select @xygs = count(公司名称) from [userreg] where 公司名称=@gs
select @gs = 公司名称,@rgs=用户数 from [user] 
if @gs is null or @gs =''     select '0'else
  begin
    if  @xygs >=@rgs 
        select '3'
    else
       begin
        select @sj =机器码 from [userreg] where 机器码= @p3
        if  @sj is null or @sj='' 
        begin              INSERT INTO [knmailuser].[dbo].[userreg] 
       ( [公司名称],
       [计算机名],
       [机器码]) 
             VALUES 
      ( @p1,
       @p2,
       @p3)
             select '1'
             end
             else
                      update userreg set 公司名称=@p1, 计算机名= @p2 where  机器码= @p3
                      select '2'
       end
   endGO

解决方案 »

  1.   

    CREATE PROCEDURE 注册 (@p1  [char](200),
     @p2  [char](100),
     @p3  [char](100))AS
    declare @sj [char](100)
    declare @gs[char](200)
    declare @rgs[int]
    declare @xygs [int]
    select @xygs = count(公司名称) from [userreg] where 公司名称=@gs
    select @gs = 公司名称,@rgs=用户数 from [user] if @gs is null or @gs ='' 
    begin
        select '0'
    end
    else
    begin
        if  @xygs >=@rgs 
        begin
            select '3'
        end
        else
        begin
            select @sj =机器码 from [userreg] where 机器码= @p3
            if  @sj is null or @sj='' 
            begin
                INSERT INTO [knmailuser].[dbo].[userreg] ( [公司名称],[计算机名],[机器码]) 
                VALUES( @p1,@p2,@p3)
                
                select '1'
            end
            else
            begin
                update userreg set 公司名称=@p1, 计算机名= @p2 where  机器码= @p3
                select '2'
            end
        end
    end
    GO
      

  2.   

    有个问题,改正了一下!
    CREATE PROCEDURE 注册 (@p1  [char](200),
     @p2  [char](100),
     @p3  [char](100))AS
    declare @sj [char](100)
    declare @gs[char](200)
    declare @rgs[int]
    declare @xygs [int]
    select @xygs = count(公司名称) from [userreg] where 公司名称=@gs
    select @gs = 公司名称,@rgs=用户数 from [user] 
    if @gs is null or @gs =''     select '0'else
      begin
        if  @xygs >=@rgs 
            select '3'
        else
           begin
            select @sj =机器码 from [userreg] where 机器码= @p3
            if  @sj is null or @sj='' 
            begin              INSERT INTO [knmailuser].[dbo].[userreg] 
           ( [公司名称],
           [计算机名],
           [机器码]) 
                 VALUES 
          ( @p1,
           @p2,
           @p3)
                 select '1'
                 end
                 else
                    begin
                          update userreg set 公司名称=@p1, 计算机名= @p2 where  机器码= @p3
                          select '2'
                    end
           end
       endGO
      

  3.   

    要养成好习惯,凡是分支处理的部分都用begin ... end括起来。