Ключевое слово GO
сигнализирует об окончании пакета в SQL Server Management Studio - обычно SQL Server Management Studio выполняет все операторы в одном пакете (однако пакет можно рассматривать как двустороннюю передачу в базу данных), однако в определенных ситуациях может потребоваться выполнение операторов в разных пакетах (например, оператор SET SHOWPLAN_ALL должен быть единственным оператором в пакете)
Например, выполнение следующего сценария в SQL Server Management Studio:
USE StackOverflow
GO
SELECT * FROM Comments
Примерно эквивалентно выполнению следующих действий в C #:
using (var cmd = new SqlCommand("USE StackOverflow", conn))
{
cmd.ExecuteReader();
}
using (var cmd = new SqlCommand("SELECT * FROM Comments", conn))
{
cmd.ExecuteReader();
}
Обратите внимание, что GO
является , а не ключевым словом T-SQL, оно понимается только SQL Server Management Studio и другими инструментами SQL. Например, следующее не будет работать и приведет к исключению времени выполнения:
string cmdText = @"
USE StackOverflow
GO
SELECT * FROM Comments";
using (var cmd = new SqlCommand(cmdText, conn))
{
cmd.ExecuteReader();
}