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

Откуда:
Сообщений: 241
Добрый день, подскажите, пожалуйста: существуют ли какие-то приемы, позволяющие вставить данные базу при помощи функции? Непосредственно сделать insert не получится, вызвать хранимую процедуру - тоже, но... может быть, что-нибудь можно придумать?

Решаюсь спросить, т.к., с одной стороны, все как бы знают, что использование функций в mssql обвешано обременительными ограничениями, с другой, некоторые из ограничений вполне реально обойти. А указанное?
16 янв 12, 14:42    [11911166]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
а какую задачу решаете?
16 янв 12, 14:48    [11911228]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Shlippenbaranus,

Не слышал про такие способы. Но из функции всегда можно сделать select...from если это табличная функция или вызвать ее в предлоежнии select, если скалярная.
16 янв 12, 15:09    [11911412]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Shlippenbaranus
Member

Откуда:
Сообщений: 241
Дедушка
а какую задачу решаете?


Вставить данные в базу при помощи функции :). В ТЗ так написано. Функция должна принять параметр, произвести вычисления, результат сохранить в базе данных, а ссылку на него вернуть в вызывающий код.

Т.е. я протупил, в свое время, а теперь написано пером, а мне - бегать вокруг с топором, и искать, что бы вырубить :(:(:(
16 янв 12, 15:14    [11911465]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Shlippenbaranus,

Может в ТЗ имеется ввиду "функция" не в понимании t-sql, или может писавший не был знаком с терминологией t-sql по этому не обратил внимание на нюанс функция-процедура? Потмоу что если нет то вот такое требование "результат сохранить в базе данных, а ссылку на него вернуть в вызывающий код" - как то странно видеть.
16 янв 12, 15:18    [11911529]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Shlippenbaranus
Member

Откуда:
Сообщений: 241
SomewhereSomehow
Не слышал про такие способы. Но из функции всегда можно сделать select...from если это табличная функция или вызвать ее в предлоежнии select, если скалярная.


Ну да, вызвать-то можно. Спасибо.
16 янв 12, 15:20    [11911538]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Shlippenbaranus
Member

Откуда:
Сообщений: 241
SomewhereSomehow
Shlippenbaranus,

Может в ТЗ имеется ввиду "функция" не в понимании t-sql, или может писавший не был знаком с терминологией t-sql по этому не обратил внимание на нюанс функция-процедура? Потмоу что если нет то вот такое требование "результат сохранить в базе данных, а ссылку на него вернуть в вызывающий код" - как то странно видеть.


Да, писавший не был знаком с терминологией и ньюансами t-sql, я был знаком, и должен был среагировать :). Ну да ладно.

А само по себе требование "результат сохранить в базе данных, а ссылку на него вернуть в вызывающий код", IMHO, нормальное. Я, может, просто недостаточно подробно написал. "Функция" должна инициировать (создать) некий процесс, и отдать программисту id, по которому он может позже узнать результат (т.е. "статус") процесса.
16 янв 12, 15:35    [11911748]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Glory
Member

Откуда:
Сообщений: 104751
Shlippenbaranus
Да, писавший не был знаком с терминологией и ньюансами t-sql, я был знаком, и должен был среагировать :). Ну да ладно.

А само по себе требование "результат сохранить в базе данных, а ссылку на него вернуть в вызывающий код", IMHO, нормальное. Я, может, просто недостаточно подробно написал. "Функция" должна инициировать (создать) некий процесс, и отдать программисту id, по которому он может позже узнать результат (т.е. "статус") процесса

Ну так и почему не может быть использована процедура то ?
16 янв 12, 15:39    [11911800]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Shlippenbaranus
Member

Откуда:
Сообщений: 241
Glory
Ну так и почему не может быть использована процедура то ?


Технически - может, естественно. Но это ж изменение ТЗ и куча не-технических проблем. Жаль, что нельзя обойти ограничения. Это было бы проще :).
16 янв 12, 15:50    [11911941]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
Glory
Member

Откуда:
Сообщений: 104751
Shlippenbaranus
Технически - может, естественно. Но это ж изменение ТЗ

В ТЗ сказано что ? Создать scalar value function ? или tablevalue function ?
16 янв 12, 15:54    [11911975]     Ответить | Цитировать Сообщить модератору
 Re: Вставить данные базу при помощи функции  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
Shlippenbaranus
Но это ж изменение ТЗ и куча не-технических проблем
Думаю, для ТЗ что функция, что процедура - всё едино :-)
16 янв 12, 16:05    [11912097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить