Как заставить SQL Server выполнять по одной команде за раз, не используя GO? - PullRequest
3 голосов
/ 27 сентября 2010

Я хотел бы убедиться, что ряд команд выполняется последовательно, как в

update TABLE1...
update TABLE2...
update TABLE3...

Мне бы хотелось, чтобы update TABLE2 запускался только после завершения update TABLE1.

Конечно, я могу сделать это с помощью GO:

update TABLE1...
GO
update TABLE2...
GO
update TABLE3...
GO

Но в этом случае я потеряю все локальные переменные.

Есть ли простой способ выполнить то, что мне нужно?Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Вам не нужно GO, чтобы сделать это;GO просто вызывает отправку пакета на сервер в этот момент.Пока вы последовательно размещаете команды в одном скрипте, они будут выполняться одна за другой, как вам хочется.Вам нужно будет проделать дополнительную работу, чтобы заставить их работать параллельно

2 голосов
/ 27 сентября 2010

Следующая команда в вашем пакете начнется только после завершения предыдущей. Не нужно ничего делать, вот как это работает. Какую проблему вы решаете?

Редактировать: ваша ошибка «невозможно воссоздать индекс, он уже существует» возникает при компиляции, а не во время работы - ваш индекс существует при компиляции пакета GO разбивает ваш скрипт на отдельные пакеты, которые компилируются только после завершения предыдущего пакета.

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