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

Откуда:
Сообщений: 2
Здравствуйте! Подскажите, пожалуйста!

Например, есть таблица с атрибутами:

ID Name Simple
1 Jax 5648
2 Nina 8945
3 Bill 2254
4 Sam 3457
5 Nick 6596

Можно ли как-нибудь реализовать (через созданную пользователем функцию) замену данных в аргументе Simple для определенного ID ?

Например, мне необходимо заменить для ID 4 значение в Simple 3457 на значение 9947. И чтоб соответственно строка в итоге выглядела так:
4 Sam 9947.

т.е. чтоб постоянно можно было задавать первый аргумент - ID, а второй аргумент - значение Simple, на которое я хочу заменить имеющееся.

Чтоб выглядело как-нибудь так: Zamena (4, 9947)

(Это я пытаюсь сделать в MS SQL Server 2017)
16 фев 21, 10:57    [22281459]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пользовательскую функцию для замены данных?  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 117
TrevorXII, функции в SQL Server не могут изменять данные.

BOL
Limitations and restrictions
  • User-defined functions cannot be used to perform actions that modify the database state.

BOL: Create User-defined Functions (Database Engine)
16 фев 21, 11:24    [22281474]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пользовательскую функцию для замены данных?  [new]
TrevorXII
Member

Откуда:
Сообщений: 2
Sybex, благодарю!

И я так понимаю, что мой вопрос необходимо реализовывать процедурой?
16 фев 21, 11:38    [22281482]     Ответить | Цитировать Сообщить модератору
 Re: Как создать пользовательскую функцию для замены данных?  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 117
TrevorXII, да. Простенькая процедура типа такой:
CREATE PROCEDURE [sometable_update]
     @ID int
    ,@Simple int
AS
BEGIN
    UPDATE [sometable]
       SET [Simple] = @Simple
     WHERE [ID] = @ID
END


И потом её вызов:
EXEC [sometable_update]
     @ID = 4
    ,@Simple = 9947
16 фев 21, 15:05    [22281655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить