У меня есть таблица с именем my_table
с этой схемой:
+----+--------------------------+-----------------------------+--------------------+
| ID | name (4 possible values) | action (2 possible values) | sequence (1,2...n) |
+----+--------------------------+-----------------------------+--------------------+
Я хочу создать хранимую процедуру, которая может обрабатывать данные в соответствии с последовательностью из столбца sequence
. Эта хранимая процедура должна посмотреть на значение в sequence
, а затем выполнить соответствующую хранимую процедуру. Тока у меня 8 отдельных хранимых процедур.
Например, если seq = 1
, то должна выполняться хранимая процедура # 1.
Если seq = 2
, он переходит к хранимой процедуре # 4 в зависимости от значений name
и action
. Есть 8 возможных совпадений.
Вот моя попытка:
SET NOCOUNT ON
DECLARE @name varchar(20), @action varchar(20), @ID int, @Seq varchar(20)
DECLARE ILOOP CURSOR FOR SELECT ID, Name, Action, Seq FROM my_table
OPEN ILOOP
FETCH NEXT FROM iloop INTO @ID, @name, @Action, @Seq
WHILE @@Fetch_Status = 0 BEGIN
SELECT * From my_table WHERE Name = case Name when 'provider'
then EXEC sp1
END
CLOSE ILOOP
DEALLOCATE ILOOP
RETURN