Страница: 1 |
Страница: 1 |
Вопрос: Плииз!!! Очень-очень надо! хранимая процедура
Добавлено: 16.11.06 00:17
Автор вопроса: angelnl
таблица login(id,login,password,role)
Надо проверить логин и пароль в таблице login и вернуть
role. Я самый новичок из всех новичков.. Сорри за глупые вопросы
CREATE PROCEDURE retrole
@login char(10),
@password char(10),
AS
select role from login where login=@login,password=@password
...а дальше я не знаю..
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 16.11.06 20:55
На SQL 2005 эта процедура может выглядеть примерно так:
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE GetRoleForUser
@Login char(10),
@Pwd char(10),
@RoleName nvarchar(50) OUTPUT --Выходной параметр
AS
BEGIN
SET NOCOUNT ON;
SELECT @RoleName = [Role] FROM [LOGIN]
WHERE  [LOGIN] = @Login) AND (Password = @Pwd)
END
GO
Это будет работать при условии, что для юзера есть только ОДНА роль и она является строковой величиной.. В таких случаях делаю так называемую Scalar-Valued Function.. Она имеет несколько другой синтаксис.
P.S. Название таблицы и поля словом LOGIN есть не совсем удачное решение.. тоже самое касается слова Role.. Потому что эти слова являются ключевыми в SQL 2005
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 16.11.06 21:00
А вообще, если уж завязалась с SQL, то весьма рекомендую почитать BooksOnLine - это аналог MSDN только для SQL Server