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

Откуда: Rostov-on-Don
Сообщений: 488
Можно ли отработать команду UPDATE в теле функции, чтоб сохранить определенные данные в таблице?
12 май 04, 15:44    [674068]     Ответить | Цитировать Сообщить модератору
 Re: Отработать UPDATE в теле функции  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Нет.

The following statements are allowed in the body of a multi-statement function. Statements not in this list are not allowed in the body of a function:

  • Assignment statements.
  • Control-of-Flow statements.
  • DECLARE statements defining data variables and cursors that are local to the function.
  • SELECT statements containing select lists with expressions that assign values to variables that are local to the function.
  • Cursor operations referencing local cursors that are declared, opened, closed, and deallocated in the function. Only FETCH statements that assign values to local variables using the INTO clause are allowed; FETCH statements that return data to the client are not allowed.
  • INSERT, UPDATE, and DELETE statements modifying table variables local to the function.
  • EXECUTE statements calling an extended stored procedures.
  • 12 май 04, 15:49    [674087]     Ответить | Цитировать Сообщить модератору
     Re: Отработать UPDATE в теле функции  [new]
    Underking
    Member

    Откуда: Rostov-on-Don
    Сообщений: 488
    Т.е. нельзя, насколько я понял.
    Но а если надо как-то сохранть определенное значение. Хоть извращенный способ, но нужен.
    12 май 04, 15:55    [674114]     Ответить | Цитировать Сообщить модератору
     Re: Отработать UPDATE в теле функции  [new]
    pkarklin
    Member

    Откуда: Москва (Муром)
    Сообщений: 74925
    Ну, если извращенный, то через написание внешней хп, которая будет принимать параметры, коннектиться к серверу и писать их куда надо.

    А почему именно в функцию уперлись - почему хп нельзя юзать?
    12 май 04, 16:01    [674135]     Ответить | Цитировать Сообщить модератору
     Re: Отработать UPDATE в теле функции  [new]
    Underking
    Member

    Откуда: Rostov-on-Don
    Сообщений: 488
    Мне нужна функция, которую можно будет использовать в запросе. Это особым образом написанная функция получения случайного числа, причем алгоритм строго задан и результат ее полностью должен совпадать с результатом работы такой же функции, написанной на другом языке. Грубо говоря клиент может получить тоже самое случайное число не подключаясь к базе.
    12 май 04, 16:30    [674248]     Ответить | Цитировать Сообщить модератору
     Re: Отработать UPDATE в теле функции  [new]
    Maxx
    Member [скрыт]

    Откуда:
    Сообщений: 24290
    Теоретически можно:)) Но пользы мало,в ф -ции можно производить действия над таблицей,предварительно обренув ее в OPENQUERY,но в него нельзя передать параметры:(
    12 май 04, 18:16    [674579]     Ответить | Цитировать Сообщить модератору
     Re: Отработать UPDATE в теле функции  [new]
    GreenSunrise
    Member

    Откуда:
    Сообщений: 12310
    алгоритм строго задан и результат ее полностью должен совпадать с результатом работы такой же функции, написанной на другом языке
    Имхо для данной задачи extended stored proc - самое подходящее решение. Не будет дублирования кода.
    Собственно, esp как раз и разрабатывались с целью использования внешнего кода для задач, на T-SQL ложащихся криво или вообще не реализуемых.
    12 май 04, 18:46    [674675]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить