none
Выходной параметр табличного типа в ХП. RRS feed

  • Вопрос

  • Доброе время. Можно ли сделать параметр табличного типа выходным? Создал табличный тип, не могу сделать в хранимой процедуре параметр этого типа выходным. (Входным - все ОК). Readonly - параметр не меняется в теле ХП, а задекларирвать переменную этого же типа и потом ее присвоить параметру - возможно? Хотелось бы в клиентское вернуть табличный параметр. CREATE PROCEDURE SP1 @id int, @tableParameter as MyUserTableTypy output readonly ... - ошибка синтаксиса Incorrect syntax near 'readonly'. Спасибо.
    9 февраля 2010 г. 12:39

Ответы

  • А все же можно ли вернуть табличный параметр?

    Конечно же НЕТ, да и смысла не вижу, табличный параметр изначально нельзя изменять (возможно в новых версия параметр перестанет быть READONLY), а зачет тогда его возвращать из процедуры, если на входе и выходе одно и тоже!?
    http://www.t-sql.ru
    9 февраля 2010 г. 14:05
    Отвечающий

Все ответы

  • а почему бы из процедуры явным образом не вернуть рекордсет? эта возможность была ещё в 7ке и раньше


    http://www.t-sql.ru
    9 февраля 2010 г. 13:31
    Отвечающий
  • А все же можно ли вернуть табличный параметр?
    9 февраля 2010 г. 13:41
  • А все же можно ли вернуть табличный параметр?

    Конечно же НЕТ, да и смысла не вижу, табличный параметр изначально нельзя изменять (возможно в новых версия параметр перестанет быть READONLY), а зачет тогда его возвращать из процедуры, если на входе и выходе одно и тоже!?
    http://www.t-sql.ru
    9 февраля 2010 г. 14:05
    Отвечающий
  • Увы, сделать этого нельзя. И это печально.

    9 февраля 2010 г. 15:36
  • Вообще-то необязательно использовать только один табличный параметр для возврата, к примеру отправил из клиентского массив,с установленными значениями для юзерского конфига, а возвращаются данные(выбранные,вычесленные на сиквеле) в соответствии с данным входным массивом, - рекордсет - это все понятно, но раз уж ввели на вход, то логично было сделать и выходной параметр.
    17 февраля 2010 г. 9:47
  • Вообще-то необязательно использовать только один табличный параметр для возврата, к примеру отправил из клиентского массив,с установленными значениями для юзерского конфига, а возвращаются данные(выбранные,вычесленные на сиквеле) в соответствии с данным входным массивом, - рекордсет - это все понятно, но раз уж ввели на вход, то логично было сделать и выходной параметр.

    так как табличный входной пар-р только на чтение, то пока и смысла выводить его обратоно нет 

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

    Вот интересная ссылка на вашу тему: http://www.sommarskog.se/tableparam.html
    http://www.t-sql.ru
    17 февраля 2010 г. 16:50
    Отвечающий