SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GOCREATE PROC  LoginInformation
             @ClientName varchar(20),              -- 帐号
             @password varchar(20),                  -- 密码
             @MachineId varchar(23),                 -- 机器码
             @VersionNum varchar(13),                -- 版本号
             @LoginMessage varchar(1) Output         -- 登陆信息ASDECLARE
  @sClientName varchar(20),
  @sPassword varchar(20),
  @sMachineId varchar(23),
  @sDeadline varchar(10),
  @sRole varchar(1),
  @sLock varchar(1),
  @sVersionNum varchar(13)      select @sClientName = a.客户帐号, a.开始时间, a.使用期限, a.到期日, @sDeadline = a.是否到期, a.当前时间, @sPassword = a.密码, @sMachineId = a.机器码, a.网卡地址, @sRole = a.角色, @sLock = a.锁定,
         @sVersionNum = b.versionNum 
    from echo..V_ClientInf a, echo..versionInf b 
   where 客户帐号 = @ClientNameif @sClientName is null 
     set @LoginMessage = 0       -- 用户不存在
  else if @sPassword <> @Password 
        set @LoginMessage = 1        -- 密码错误
    else if @sMachineId <> MachineId  
           set @LoginMessage = 2         -- 机器码不符
         else if @sDeadline = '已到期'
                set @LoginMessage = 3        -- 使用限期已过
              else if (@sClientName = @ClientName) and (@sMachineId <> MachineId) 
                     set @LoginMessage = 4       -- 该帐号已注册在另一台机器上
                   else if @sRole = 'S'  
                          set @LoginMessage = 5     -- 超级用户
                        else if @sLock = '1'
                               set @LoginMessage = 6   -- 该帐号被锁定
                          else if @sVersionNum <> versionNum 
                                 set @LoginMessage = 7    -- 版本不符                           
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
有没有更好的写法呢?

解决方案 »

  1.   

    select   @sClientName   =   a.客户帐号,   a.开始时间,   a.使用期限,   a.到期日,   @sDeadline   =   a.是否到期,   a.当前时间,   @sPassword   =   a.密码,   @sMachineId   =   a.机器码,   a.网卡地址,   @sRole   =   a.角色,   @sLock   =   a.锁定, 
                      @sVersionNum   =   b.versionNum   
            from   echo..V_ClientInf   a,   echo..versionInf   b   
          where   客户帐号   =   @ClientName 将没有变量赋值的字段全部取掉.
      

  2.   

    就是这些a.开始时间,       a.使用期限,       a.到期日,  ...