Что является различием между “”; и “ПОЙДИТЕ” в T-SQL?

Я видел , Тест SOA раньше оценивал производительность и тесты масштабируемости на сервисах WCF, если это - то, что Вы ищете. У меня нет информации о стоимости или liscencing.

В нашем случае, мы получили сообщения от нашего UI для выполнения автоматизированного тестирования.

50
задан DavidRR 28 November 2016 в 04:14
поделиться

5 ответов

GO на самом деле не является командой T-SQL. Команда GO была введена инструментами Microsoft как способ разделения пакетных операторов, таких как конец хранимой процедуры. GO поддерживается инструментами стека Microsoft SQL, но формально не является частью других инструментов.

Вы не можете поместить GO в строку SQL и отправить его как часть Объект команды ADO.NET, поскольку сам SQL не понимает этого термина. Другой способ продемонстрировать это - использовать профилировщик: настроить несколько операторов, использующих GO в Query Analyzer / Management Studio, а затем запустить профилировщик при выполнении. Вы увидите, что они выдаются серверу как отдельные команды.

Точка с запятой используется для обозначения конца самого оператора, а не обязательно всего пакета.

http://msdn.microsoft. com / en-us / library / ms188037.aspx

60
ответ дан 7 November 2019 в 10:37
поделиться

«GO» аналогично; во многих случаях, но на самом деле означает конец партии.

Каждый пакет фиксируется при вызове оператора "GO", поэтому, если у вас есть:

SELECT * FROM table-that-does-not-exist;
SELECT * FROM good-table;

в вашем пакете, то выбор хорошей таблицы никогда не будет вызван, потому что первый выбор вызовет ошибку.

Если бы у вас вместо этого было:

SELECT * FROM table-that-does-not-exist
GO
SELECT * FROM good-table
GO

Первый оператор выбора по-прежнему вызывает ошибку, но поскольку второй оператор находится в отдельном пакете, он все равно будет выполняться.

GO не имеет ничего общего с фиксацией транзакции.

37
ответ дан 7 November 2019 в 10:37
поделиться

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

GO

Означает конец пакета. Выполняет предыдущий пакет операторов, так как обнаруживает конец блока.

GO 2

Означает выполнение пакета много раз. Думаю, я использовал этот вариант, может быть, дважды в жизни. С другой стороны, по профессии я не администратор базы данных.

21
ответ дан 7 November 2019 в 10:37
поделиться

«GO» обычно используется для обозначения конца пакета операторов SQL, что означает, что вы можете иметь начать транзакцию и ] завершить транзакцию , упакованную в один набор инструкций, которые могут завершиться неудачно или успешно.

';' обычно используется для отделения нескольких операторов SQL друг от друга. Это заметно в сценариях SQL, которым необходимо возвращать несколько наборов записей, например `select * from table1; выберите * из таблицы2; ' что приведет к созданию двух отдельных наборов записей на стороне клиента.

4
ответ дан 7 November 2019 в 10:37
поделиться

Я подумал; символ разделяет список команд SQL, GO просто инструктирует SQL Server выполнить все предыдущие команды.

0
ответ дан 7 November 2019 в 10:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: