Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

À propos de la commande GO dans SQL Server

Si vous avez utilisé T-SQL, vous serez probablement familiarisé avec le GO commande. Cette commande est souvent placée à la fin d'un lot d'instructions.

Par exemple :

CREATE DATABASE Books;
GO

Cependant, le GO La commande ne fait pas réellement partie de T-SQL. Il ne peut même pas occuper la même ligne qu'une instruction T-SQL.

GO est l'une des commandes reconnues par sqlcmd et osql utilitaires, ainsi que SQL Server Management Studio Code Editor pour faciliter la lisibilité et l'exécution des lots et des scripts. Le GO La commande signale la fin d'un lot d'instructions T-SQL aux utilitaires SQL Server.

Les utilitaires SQL Server interprètent GO comme signal qu'ils doivent envoyer le lot actuel d'instructions T-SQL à une instance de SQL Server. Le lot de relevés en cours est composé de tous les relevés saisis depuis le dernier GO , ou depuis le début de la session ad hoc ou du script s'il s'agit du premier GO .

Le GO La commande peut être pratique lors de l'écriture de scripts plus volumineux. Lors de l'écriture de scripts plus volumineux, vous pouvez parfois obtenir une erreur, car certaines parties du script nécessitent que des parties antérieures aient été exécutées en premier. Vous pouvez placer GO à des endroits stratégiques du script afin que ces parties soient exécutées en premier.

Voici un exemple de script qui crée une table partitionnée. Il a le GO commande placée à divers endroits dans le script pour s'assurer que chaque section est exécutée avant la section suivante.

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