Saltar al contenido

Comando GO en Tsql

Comando GO, es un comando que permite ejecutar el mismo comando o conjunto de comando una y otra vez.

Índice

    ¿Qué es GO en base de datos?


    La palabra clave GO le dice a SQL Server que ejecute el código anterior como un lote. Es una señal de que deben enviar el N veces la actual de instrucciones Transact-SQL a una instancia de SQL Server. Entonces, echemos un vistazo a un par de ejemplos.


    Uso de comando GO en SQL


    Digamos que desea crear una tabla de prueba y cargarla con 100 registros. Puede emitir el siguiente comando y ejecutará el mismo comando INSERT 100 veces

    • CREATE TABLE dbo.pruebaGo (ID INT IDENTITY (1,1), ROWID uniqueidentifier)
    • GO
    • INSERT INTO dbo.pruebaGo (ROWID) VALUES (NEWID()) GO 100

    Según vemos cada instrucción tiene una clausula de GO con la cantidad de veces que debe ejecutarse.


    Ejemplo comando GO


    Aquí hay otro ejemplo que ejecuta dos declaraciones INSERT 100 veces.

    • CREATE TABLE dbo. pruebaGo (ID INT IDENTITY (1,1), ROWID uniqueidentifier)
    • CREATE TABLE dbo. pruebaGo2 (ID INT IDENTITY (1,1), ROWID uniqueidentifier)
    • NSERT INTO dbo. pruebaGo (ROWID) VALUES (NEWID()) GO
    • INSERT INTO dbo. pruebaGo 2 (ROWID) VALUES (NEWID()) GO 100

    El comando WHILE VS GO


    Para hacer algo similar con un bucle, necesitaría escribir un código como el siguiente.

    • CREATE TABLE dbo.TEST (ID INT IDENTITY (1,1), ROWID uniqueidentifier)
    • CREATE TABLE dbo.TEST2 (ID INT IDENTITY (1,1), ROWID uniqueidentifier)
    • GO
    • DECLARE @counter INT
    • SET @counter = 0
    • WHILE @counter < 100
    • BEGIN
    • INSERT INTO dbo.TEST (ROWID) VALUES (NEWID())
    • INSERT INTO dbo.TEST2 (ROWID) VALUES (NEWID())
    • SET @counter = @counter + 1
    • END

    No es gran cosa, pero escribir GO 100 me parece un poco más fácil ademas te recomendamos ver como usar los bucles.