Лучший отвечающий
Выходной параметр табличного типа в ХП.

Вопрос
-
Доброе время. Можно ли сделать параметр табличного типа выходным? Создал табличный тип, не могу сделать в хранимой процедуре параметр этого типа выходным. (Входным - все ОК). 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- Помечено в качестве ответа Daniil KhabarovModerator 10 февраля 2010 г. 8:46
9 февраля 2010 г. 14:05Отвечающий
Все ответы
-
а почему бы из процедуры явным образом не вернуть рекордсет? эта возможность была ещё в 7ке и раньше
http://www.t-sql.ru9 февраля 2010 г. 13:31Отвечающий -
А все же можно ли вернуть табличный параметр?9 февраля 2010 г. 13:41
-
А все же можно ли вернуть табличный параметр?
Конечно же НЕТ, да и смысла не вижу, табличный параметр изначально нельзя изменять (возможно в новых версия параметр перестанет быть READONLY), а зачет тогда его возвращать из процедуры, если на входе и выходе одно и тоже!?
http://www.t-sql.ru- Помечено в качестве ответа Daniil KhabarovModerator 10 февраля 2010 г. 8:46
9 февраля 2010 г. 14:05Отвечающий -
Увы, сделать этого нельзя. И это печально.
9 февраля 2010 г. 15:36 -
Вообще-то необязательно использовать только один табличный параметр для возврата, к примеру отправил из клиентского массив,с установленными значениями для юзерского конфига, а возвращаются данные(выбранные,вычесленные на сиквеле) в соответствии с данным входным массивом, - рекордсет - это все понятно, но раз уж ввели на вход, то логично было сделать и выходной параметр.17 февраля 2010 г. 9:47
-
Вообще-то необязательно использовать только один табличный параметр для возврата, к примеру отправил из клиентского массив,с установленными значениями для юзерского конфига, а возвращаются данные(выбранные,вычесленные на сиквеле) в соответствии с данным входным массивом, - рекордсет - это все понятно, но раз уж ввели на вход, то логично было сделать и выходной параметр.
так как табличный входной пар-р только на чтение, то пока и смысла выводить его обратоно нет
не исключено, что в будущих версиях табличный пар-р будет изменяем в теле процедуры (обсуждения поднимались и фидбек существует), тогда он и будет доступен для возврата в виде табличного пар-ра
Вот интересная ссылка на вашу тему: http://www.sommarskog.se/tableparam.html
http://www.t-sql.ru17 февраля 2010 г. 16:50Отвечающий