Как использовать L oop Хранимая процедура на SQL Сервере? - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть таблица классов, в которой мне нужно запустить хранимую процедуру (SQL Server) в l oop класса, т.е. она должна запускаться здесь 5 раз, поскольку максимальный класс в 5-м стандарте в таблице. Для каждого l oop поле статуса должно обновляться как пройденное или неудачное.

Вид таблицы указан ниже.

Имя таблицы: classes

enter image description here

Хранимая процедура:

DECLARE @counter INT = 1;

SELECT count(class)
FROM classes
GROUP BY class;

WHILE @counter <= * * [here I need count of distinct class] * *;//i.e, here 5 
BEGIN
    PRINT @counter;

    UPDATE classes
    SET STATUS = "Pass"
    WHERE class = * * [here I need class value] * *;

    SET @counter = @counter + 1;
END

Пожалуйста, помогите мне выполнить эту хранимую процедуру.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы уверены, что не хотите просто утверждение UPDATE?

UPDATE classes
SET [Status] = CASE WHEN [Class] = 'I' THEN 'Pass'
                    WHEN [Class] = 'II' THEN 'Fail'
.... etc.
...