Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите оптимизировать процедуру CHECK_LOGIN  [new]
Ibinom
Member

Откуда:
Сообщений: 137
Добрый день!
Ниже привожу текст sp, вызываемой из сервера при коннекте к нему клиента. Как бы ее оптимизировать?
По крайней мере чтобы сразу возвращать содержимое ACC_TYPE

CREATE PROCEDURE CHECK_LOGIN
@USER_LOG VARCHAR(50),
@USER_PASS VARCHAR(50)
AS
IF (SELECT COUNT(*) FROM CLIENTS
    WHERE USER_LOGIN = @USER_LOG AND USER_PASSWORD = @USER_PASS) = 0
BEGIN
  RETURN -1 /* Login and Password are invalid */
END
ELSE
BEGIN
  IF (SELECT VALID_DATE FROM CLIENTS
    WHERE USER_LOGIN = @USER_LOG AND USER_PASSWORD = @USER_PASS AND ACC_TYPE=0) > getDate()
  RETURN 0	/* Login and Password are valid, demo account */
  ELSE
  IF (SELECT VALID_DATE FROM CLIENTS
    WHERE USER_LOGIN = @USER_LOG AND USER_PASSWORD = @USER_PASS AND ACC_TYPE=1) > getDate()
  RETURN 1	/* Login and Password are valid, real account */
  ELSE
  IF (SELECT VALID_DATE FROM CLIENTS
    WHERE USER_LOGIN = @USER_LOG AND USER_PASSWORD = @USER_PASS AND ACC_TYPE=2) > getDate()
  RETURN 2	/* Login and Password are valid, admin account */
  ELSE RETURN -2  /*  Login expired */
END
GO


Сообщение было отредактировано: 20 сен 12, 17:59
20 сен 12, 17:47    [13197903]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать процедуру CHECK_LOGIN  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
CASE
20 сен 12, 18:03    [13198019]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать процедуру CHECK_LOGIN  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
declare @date datetime,@type int
SELECT @date = VALID_DATE, @type = ACC_TYPE
FROM CLIENTS
WHERE USER_LOGIN = @USER_LOG AND USER_PASSWORD = @USER_PASS
if @date is null return -1
if @date < getdate() return -2 
return @type
20 сен 12, 18:07    [13198030]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать процедуру CHECK_LOGIN  [new]
Ibinom
Member

Откуда:
Сообщений: 137
Спасибо!)
20 сен 12, 18:18    [13198083]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить