SQL Server Management Studio siempre inserta un comando GO cuando creo una consulta usando el menú derecho "Script As". ¿Por qué? ¿Qué hace realmente GO?
SQL Server Management Studio siempre inserta un comando GO cuando creo una consulta usando el menú derecho "Script As". ¿Por qué? ¿Qué hace realmente GO?
Respuestas:
Es un terminador de lotes, sin embargo, puede cambiarlo a lo que quiera
El comando GO no es una instrucción Transact-SQL, sino un comando especial reconocido por varias utilidades de MS, incluido el editor de código de SQL Server Management Studio.
El comando GO se usa para agrupar comandos SQL en lotes que se envían juntos al servidor. Los comandos incluidos en el lote, es decir, el conjunto de comandos desde el último comando GO o el inicio de la sesión, deben ser lógicamente consistentes. Por ejemplo, no puede definir una variable en un lote y luego usarla en otro ya que el alcance de la variable se limita al lote en el que está definida.
Para obtener más información, consulte http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GO
realmente útil agrupar cosas ?
GO no es una palabra clave SQL.
Es un separador de lotes utilizado por las herramientas del cliente (como SSMS) para dividir todo el script en lotes
Respondió varias veces antes ... ejemplo 1
Solo para agregar a las respuestas existentes, cuando crea vistas debe separar estos comandos en lotes usando go
, de lo contrario obtendrá el error 'CREATE VIEW' must be the only statement in the batch
. Entonces, por ejemplo, no podrá ejecutar el siguiente script sql singo
create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go
select * from MyView1
select * from MyView2
Ir significa que cualquier instrucción SQL que esté escrita antes y después de cualquier GO anterior, irá al servidor SQL para su procesamiento.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
En el ejemplo anterior, las declaraciones antes de GO 1 irán a sql sever en un lote y luego cualquier otra declaración antes de GO 2 irá al servidor sql en otro lote. Entonces, como vemos, ha separado lotes.
Aquí está la magia de GO.
SELECT 'Go'
Go 10
SINTAXIS: Ir INT(BatchNumber)
BatchNumber: no se produjo ninguna de las veces
Parece simple, podría llevarte a Spaghetti si codificas más profundamente.