Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Sobre o comando GO no SQL Server


Se você já usou T-SQL, provavelmente estará familiarizado com o GO comando. Esse comando geralmente é colocado no final de um lote de instruções.

Por exemplo:
CREATE DATABASE Books;
GO

No entanto, o GO comando não é realmente parte do T-SQL. Não pode nem ocupar a mesma linha que uma instrução T-SQL.

GO é um dos comandos que são reconhecidos pelo sqlcmd e osql utilitários, bem como SQL Server Management Studio Code Editor para facilitar a legibilidade e execução de lotes e scripts. O GO O comando sinaliza o fim de um lote de instruções T-SQL para os utilitários do SQL Server.

Os utilitários do SQL Server interpretam GO como um sinal de que eles devem enviar o lote atual de instruções T-SQL para uma instância do SQL Server. O lote atual de instruções é composto por todas as instruções inseridas desde o último GO , ou desde o início da sessão ou script ad hoc se este for o primeiro GO .

O GO comando pode ser útil ao escrever scripts maiores. Ao escrever scripts maiores, às vezes você pode receber um erro, devido a certas partes do script que exigem que as partes anteriores tenham sido executadas primeiro. Você pode colocar GO em locais estratégicos dentro do roteiro para que tais partes sejam executadas primeiro.

Aqui está um exemplo de um script que cria uma tabela particionada. Tem o GO comando colocado em vários lugares dentro do script para garantir que cada seção seja executada antes da próxima seção.
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