Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Informazioni sul comando GO in SQL Server

Se hai usato T-SQL probabilmente avrai familiarità con GO comando. Questo comando viene spesso inserito alla fine di un batch di istruzioni.

Ad esempio:

CREATE DATABASE Books;
GO

Tuttavia, il GO il comando non fa effettivamente parte di T-SQL. Non può nemmeno occupare la stessa riga di un'istruzione T-SQL.

GO è uno dei comandi riconosciuti da sqlcmd e osql utilità, nonché SQL Server Management Studio Code Editor per facilitare la leggibilità e l'esecuzione di batch e script. Il GO Il comando segnala la fine di un batch di istruzioni T-SQL alle utilità di SQL Server.

Le utilità di SQL Server interpretano GO come segnale che devono inviare il batch corrente di istruzioni T-SQL a un'istanza di SQL Server. L'attuale batch di estratti conto è composto da tutti gli estratti conto immessi dall'ultimo GO o dall'inizio della sessione o dello script ad hoc se questo è il primo GO .

Il GO comando può essere utile quando si scrivono script più grandi. Quando si scrivono script più grandi, a volte è possibile che venga visualizzato un errore, a causa di alcune parti dello script che richiedono l'esecuzione prima di parti precedenti. Puoi inserire GO in punti strategici all'interno dello script in modo che tali parti vengano eseguite per prime.

Ecco un esempio di uno script che crea una tabella partizionata. Ha il GO comando posizionato in vari punti all'interno dello script per garantire che ogni sezione venga eseguita prima della sezione successiva.

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