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

Откуда:
Сообщений: 55
Привет всем....
Хочу создать такую функцию, но выдается такая ошибка: "Msg 443, Level 16, State 15, Procedure updateProfile, Line 16
Недопустимое использование оператора с побочным действием или зависимого от времени в "UPDATE" в функции.
" (использую Ms SQL Server 2005)

CREATE FUNCTION updateProfile(@userID int, @userLogin nchar(20), @userOldPassword nchar(20), @userNewPassword nchar(20))
RETURNS int
AS 
BEGIN
	DECLARE @result int;
	IF (SELECT id_user FROM users WHERE login=@userLogin) > 0
		BEGIN
			SET @result = 0;
		END
	ELSE
		IF (SELECT id_user FROM users WHERE id_user=@userID AND password<>@userOldPassword) > 0
			BEGIN
				SET @result = 1;
			END
		ELSE
			UPDATE users SET login=@userLogin, password=@userNewPassword WHERE id_user=@userLogin;
			SET @result = 2;
RETURN (@result);
END;
16 авг 12, 19:56    [13022943]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
Mr. Abdu Jan,

такую функцию сделать нельзя.

А почему именно функцию, а не процедуру?
16 авг 12, 20:24    [13023051]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
Mr. Abdu Jan
Member

Откуда:
Сообщений: 55
Serg_77m,

идея.... Сейчас попробую...
Спс заранее....
16 авг 12, 20:36    [13023092]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
Mr. Abdu Jan
Member

Откуда:
Сообщений: 55
Serg_77m,

а можно использовать ELSEIF в MS SQL Server 2005?
16 авг 12, 20:54    [13023159]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Mr. Abdu Jan
а можно использовать ELSEIF в MS SQL Server 2005?


Об этом не сказано в документации?
16 авг 12, 21:13    [13023225]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
Serg_77m
Member

Откуда: Донецк
Сообщений: 237
Mr. Abdu Jan,

Вместо ELSEIF вполне себе работает ELSE IF
16 авг 12, 21:19    [13023245]     Ответить | Цитировать Сообщить модератору
 Re: Использование Update в пользовательской функции  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Serg_77m
Mr. Abdu Jan,

Вместо ELSEIF вполне себе работает ELSE IF
Честно говоря меня клинит от таких вот "вопросов".
17 авг 12, 00:44    [13023980]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить