Я использую SQL Проект базы данных Server 2016, и мой сценарий выглядит следующим образом
DECLARE Marker NVARCHAR(50) = (SELECT Value FROM Table1 WHERE name = 'Marker')
IF( IS NOT NULL)
BEGIN
IF @Marker = 'Marker1' GOTO Marker2;
IF @Marker = 'Marker2' GOTO Marker3;
IF @Marker = 'Marker3' GOTO Marker4;
IF @Marker = 'Marker4' GOTO Marker5;
IF @Marker = 'Marker5' GOTO Marker6;
IF @Marker = 'Marker6' GOTO Marker7;
ELSE GOTO EmptyBlock;
END
MARKER1:
Code for marker 1
MARKER2:
Code for marker 2
MARKER3:
Code for marker 3
.
.
.
EmptyBlock:
PRINT 'No changes'
Этот файл сценария будет выполняться после каждого развертывания и в зависимости от развертывания будет пропускать предыдущие строки и теперь он достигнет маркер 15 .
Выполнение занимает слишком много времени, даже несмотря на то, что строк кода немного, но я наконец-то обнаружил проблему из-за GOTO заявления . Я не знаю, является ли использование GOTO лучшей практикой или нет, если использование этой технологии на производственной площадке не является хорошей практикой, тогда, пожалуйста, дайте мне предложения по альтернативе GOTO.