2016-03-28 2 views
1

Каковы правила, когда хранимая процедура вернет результирующий набор?Когда хранимая процедура вернет результирующий набор

Если я добавляю оператор SELECT рядом со дном, он возвращается в качестве другого результирующего набора.

Но я добавляю SELECT в начало, после чего он не возвращается в результирующем наборе.

При каких обстоятельствах будет возвращен SELECT в качестве результата? Если за ним следуют другие утверждения, они, похоже, не возвращаются, какие?

+2

Можете ли вы отправить пример, когда инструкция SELECT не возвращается? – David

+1

Если у вас есть «нормальный» оператор SELECT (не задающий ** переменные ** из результатов - но просто * выбор * данных) - он ** будет возвращен ** вызывающему абоненту –

+0

Вы говорите, что иногда есть более одного набора результатов, который возвращается? Что делает ваша хранимая процедура после инструкции 'select'? Какую программу возвращают результаты? (Это важно знать, поскольку они, как вы анализируете результаты, различаются в зависимости от вызывающего приложения.) –

ответ

0

Сохраненная процедура возвращает в итоге последние SELECT.

Это не включает в себя select into или установив переменный с помощью select

Вы можете сделать некоторые уловки, чтобы вернуть вид множественного результата с помощью UNION объявления результатов использовать дополнительное поле для разделения результатов.

посмотрите в multiple result in stored procedure

2

Хранимая процедура может возвращать несколько наборов результатов.

Если вы используете хранимую процедуру из внешнего приложения, такого как asp.net, вам может потребоваться выполнить итерацию коллекции наборов результатов, чтобы увидеть их все.

Единственный способ, которым другие операторы в хранимой процедуре препятствовали возврату результатов инструкции SELECT, были бы, если бы они не позволяли ей выполняться. (Как IF...ELSE блоков, или RETURN команды, которая останавливает выполнение и т.д.)

Так, чтобы ответить «что это правило?», Это правило, если ЗЕЬЕСТ запускается на выполнение на всех, и если она возвращает результат установленный вообще, тогда он вернет результирующий набор.

Смежные вопросы