sql >> Base de Datos >  >> RDS >> Sqlserver

Acerca del comando GO en SQL Server

Si ha utilizado T-SQL, probablemente estará familiarizado con GO dominio. Este comando a menudo se coloca al final de un lote de instrucciones.

Por ejemplo:

CREATE DATABASE Books;
GO

Sin embargo, el GO El comando no es en realidad parte de T-SQL. Ni siquiera puede ocupar la misma línea que una instrucción T-SQL.

GO es uno de los comandos reconocidos por sqlcmd y osql utilidades, así como SQL Server Management Studio Code Editor para facilitar la legibilidad y ejecución de lotes y scripts. El GO El comando señala el final de un lote de instrucciones T-SQL a las utilidades de SQL Server.

Las utilidades de SQL Server interpretan GO como una señal de que deben enviar el lote actual de declaraciones T-SQL a una instancia de SQL Server. El lote actual de declaraciones se compone de todas las declaraciones ingresadas desde el último GO , o desde el inicio de la sesión ad hoc o secuencia de comandos si este es el primer GO .

El GO El comando puede ser útil al escribir secuencias de comandos más grandes. Al escribir secuencias de comandos más grandes, a veces puede recibir un error, debido a que ciertas partes de la secuencia de comandos requieren que se hayan ejecutado primero partes anteriores. Puedes colocar GO en lugares estratégicos dentro del script para que dichas partes se ejecuten primero.

Aquí hay un ejemplo de un script que crea una tabla particionada. Tiene el GO comando colocado en varios lugares dentro de la secuencia de comandos para garantizar que cada sección se ejecute antes que la siguiente.

ALTER DATABASE Test
ADD FILEGROUP MoviesFg1;
GO  
ALTER DATABASE Test  
ADD FILEGROUP MoviesFg2;  
GO  
ALTER DATABASE Test  
ADD FILEGROUP MoviesFg3;  
GO  
ALTER DATABASE Test  
ADD FILEGROUP MoviesFg4;   

ALTER DATABASE Test   
ADD FILE   
(  
    NAME = MoviesFg1dat,  
    FILENAME = '/var/opt/mssql/data/MoviesFg1dat.ndf',  
    SIZE = 5MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5MB  
)  
TO FILEGROUP MoviesFg1;  
ALTER DATABASE Test   
ADD FILE   
(  
    NAME = MoviesFg2dat,  
    FILENAME = '/var/opt/mssql/data/MoviesFg2dat.ndf',  
    SIZE = 5MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5MB  
)  
TO FILEGROUP MoviesFg2;  
GO  
ALTER DATABASE Test   
ADD FILE   
(  
    NAME = MoviesFg3dat,  
    FILENAME = '/var/opt/mssql/data/MoviesFg3dat.ndf',  
    SIZE = 5MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5MB  
)  
TO FILEGROUP MoviesFg3;  
GO  
ALTER DATABASE Test   
ADD FILE   
(  
    NAME = MoviesFg4dat,  
    FILENAME = '/var/opt/mssql/data/MoviesFg4dat.ndf',  
    SIZE = 5MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5MB  
)  
TO FILEGROUP MoviesFg4;  
GO