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
有没有更好的写法呢?
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
有没有更好的写法呢?
@sVersionNum = b.versionNum
from echo..V_ClientInf a, echo..versionInf b
where 客户帐号 = @ClientName 将没有变量赋值的字段全部取掉.