sql >> Databasteknik >  >> RDS >> Sqlserver

Om kommandot GO i SQL Server

Om du har använt T-SQL kommer du förmodligen att vara bekant med GO kommando. Detta kommando placeras ofta i slutet av en sats med satser.

Till exempel:

CREATE DATABASE Books;
GO

Men GO kommandot är faktiskt inte en del av T-SQL. Det kan inte ens uppta samma linje som en T-SQL-sats.

GO är ett av kommandona som känns igen av sqlcmd och osql verktyg, samt SQL Server Management Studio Code Editor för att underlätta läsbarheten och exekveringen av batcher och skript. GO kommandot signalerar slutet på en grupp T-SQL-satser till SQL Server-verktygen.

SQL Server-verktyg tolkar GO som en signal om att de ska skicka den aktuella batchen av T-SQL-satser till en instans av SQL Server. Den aktuella satsen med satser består av alla satser som skrivits in sedan den senaste GO , eller sedan starten av ad hoc-sessionen eller skriptet om detta är den första GO .

GO kommando kan vara praktiskt när du skriver större skript. När du skriver större skript kan du ibland få ett fel, på grund av att vissa delar av skriptet kräver att tidigare delar har körts först. Du kan placera GO på strategiska platser i manuset så att sådana delar exekveras först.

Här är ett exempel på ett skript som skapar en partitionerad tabell. Den har GO kommandot placerat på olika ställen i skriptet för att säkerställa att varje avsnitt exekveras före nästa avsnitt.

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. Mysql-fel 1452 - Kan inte lägga till eller uppdatera en underordnad rad:en främmande nyckel-begränsning misslyckas

  2. Data fylls i från en viss tabells datum istället för alla tabeller i sqlite

  3. Oracle PL/SQL - Öka användardefinierat undantag med anpassad SQLERRM

  4. Null Pointer Undantag vid anrop av getReadableDatabase()