Хранимая процедура взаимодействия с пользователем - PullRequest
2 голосов
/ 22 июня 2011

У меня большая хранимая процедура.Имеет несколько вставок в разные таблицы.Что я хочу сделать, это приостановить хранимую процедуру и попросить пользователя подтвердить некоторые вещи (например, вам нравятся вставляемые записи), если они нажмут «да», я продолжу хранимую процедуру и попаду во вторую таблицу.Это Sql Server 2008 и asp.net.Спасибо!

ОБНОВЛЕНИЕ: мне нужно около 100 пауз.нет другого способа, кроме как создать 100 sp?

Ответы [ 2 ]

5 голосов
/ 22 июня 2011

Взаимодействие с пользователем не относится к хранимой процедуре (SP). Это относится к пользовательскому интерфейсу. Вы должны обрабатывать все это отдельно - при необходимости, написать несколько хранимых процедур. Ваш пользовательский интерфейс может затем запросить ввод, запустить процедуру, получить результаты (при необходимости), запросить дополнительный ввод (на основании предыдущих результатов, если необходимо), запустить другой SP и т. Д., Передавая пользовательский ввод в SP как параметры, если это нужно ИП.

РЕДАКТИРОВАТЬ: Подумайте о том, что вы пытаетесь сделать. Сервер базы данных предназначен для предоставления данных , а не пользовательского интерфейса. Если у вас есть многошаговые процедуры, требующие пользовательского ввода для этих шагов, вы должны обработать это в пользовательском интерфейсе. Сервер может принимать входные данные через параметры, которые передаются из пользовательского интерфейса, и может предоставлять результаты - вот и все. Каждый шаг этого процесса должен быть независимым, а пользовательский интерфейс должен контролировать процесс выполнения этих шагов. База данных не имеет ничего общего с пользовательским интерфейсом; пользовательский интерфейс - это именно то, что он называется - способ взаимодействия с пользователем.

0 голосов
/ 22 июня 2011

Тогда вам нужно две хранимые процедуры.
1. Позвоните в SP1
2. Приложение взаимодействует с пользователями
3. Звоните SP2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...