sql >> Database >  >> RDS >> Sqlserver

Over het GO-commando in SQL Server

Als je T-SQL hebt gebruikt, ben je waarschijnlijk bekend met de GO opdracht. Deze opdracht wordt vaak aan het einde van een reeks instructies geplaatst.

Bijvoorbeeld:

CREATE DATABASE Books;
GO

Echter, de GO commando is eigenlijk geen onderdeel van T-SQL. Het kan niet eens dezelfde regel bezetten als een T-SQL-statement.

GO is een van de commando's die worden herkend door de sqlcmd en osql hulpprogramma's, evenals SQL Server Management Studio Code Editor om de leesbaarheid en uitvoering van batches en scripts te vergemakkelijken. De GO commando signaleert het einde van een batch T-SQL-instructies aan de SQL Server-hulpprogramma's.

SQL Server-hulpprogramma's interpreteren GO als een signaal dat ze de huidige batch T-SQL-instructies naar een exemplaar van SQL Server moeten sturen. De huidige batch met verklaringen is samengesteld uit alle verklaringen die zijn ingevoerd sinds de laatste GO , of sinds de start van de ad-hocsessie of het script als dit de eerste GO . is .

De GO commando kan handig zijn bij het schrijven van grotere scripts. Bij het schrijven van grotere scripts kan het soms voorkomen dat u een foutmelding krijgt, omdat bepaalde delen van het script vereisen dat eerdere delen eerst worden uitgevoerd. U kunt GO . plaatsen op strategische plaatsen in het script, zodat dergelijke delen als eerste worden uitgevoerd.

Hier is een voorbeeld van een script dat een gepartitioneerde tabel maakt. Het heeft de GO commando geplaatst op verschillende plaatsen in het script om ervoor te zorgen dat elke sectie wordt uitgevoerd vóór de volgende sectie.

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

  1. SQL-fout:ORA-00933:SQL-opdracht niet correct beëindigd

  2. Hoe BLOB opslaan als bestand in PL/SQL?

  3. Zoeken in volledige tekst werkt niet als het stopwoord is opgenomen, ook al is de lijst met stopwoorden leeg

  4. Aantal rijen beïnvloed door een UPDATE in PL/SQL