¿Alguna vez te has encontrado con la instrucción GO mientras escribes T-SQL en SQL Server y te has preguntado qué es y cuándo usarla? En este artículo, exploraremos la instrucción GO y su importancia en SQL Server.
La instrucción GO se utiliza para señalar el final de un lote de instrucciones en SQL Server Management Studio (SSMS). Define el alcance de las instrucciones que estás enviando al Motor de Base de Datos. Veamos un ejemplo:
USE DEMO GO SELECT * FROM MyTable GO
En el ejemplo anterior, la primera instrucción cambia el contexto de la base de datos a “DEMO” y la segunda instrucción ejecuta una consulta SELECT contra la tabla “MyTable”. La instrucción GO separa estas dos instrucciones, indicando que deben tratarse como lotes separados.
Sin embargo, hay algunas cosas de las que debes tener cuidado al usar la instrucción GO. Si incluyes una instrucción GO dentro de un procedimiento almacenado y lo compilas, cualquier código que venga después de la instrucción GO será ignorado. Esto significa que la instrucción GO marca efectivamente el final del procedimiento almacenado.
Otra cosa a tener en cuenta es que la vida útil de una variable termina después de cada instrucción GO. Si declaras una variable, la llenas con un valor y la usas en una instrucción, no podrás usar esa variable nuevamente después de una instrucción GO.
Aquí tienes un ejemplo:
DECLARE @MyName VARCHAR(25) SELECT @MyName = 'Monica' PRINT @MyName GO PRINT @MyName + 'Again'
En el ejemplo anterior, se declara la variable @MyName, se le asigna un valor y se imprime. Sin embargo, después de la instrucción GO, no se puede acceder ni utilizar la variable @MyName.
Ahora, exploremos algunas cosas interesantes que puedes hacer con la instrucción GO. ¿Sabías que puedes especificar un número después de la instrucción GO para ejecutar el lote de instrucciones varias veces? Esto puede ser útil para generar mucha carga contra una base de datos para demostraciones o propósitos de prueba.
SELECT TOP (2) * FROM [AdventureWorks2014].[Person].[Address] GO 5
En el ejemplo anterior, la instrucción SELECT se ejecutará 5 veces, generando el conjunto de resultados varias veces.
Por último, si no te gusta usar la palabra “GO”, en realidad puedes cambiarla por cualquier cosa que desees. En SSMS, ve a Herramientas > Opciones > Ejecución de Consulta y modifica la configuración de “Separador de lotes”. Por ejemplo, puedes cambiarlo a “RUNNOW”.
Sin embargo, ten en cuenta que cambiar el separador de lotes solo funciona para nuevas ventanas o sesiones de consulta. Si intentas usar el nuevo separador de lotes en una ventana abierta existente, no funcionará hasta que abras una nueva ventana o sesión.
Ahora que tienes una mejor comprensión de la instrucción GO en SQL Server, siéntete libre de usarla con confianza en tus scripts de T-SQL. Solo recuerda su propósito de separar lotes y sé consciente de sus implicaciones en los procedimientos almacenados y la vida útil de las variables.
¡Feliz codificación!