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

SQL Server:Skal jeg bruge GO-sætninger mellem batches?

De er ikke strengt påkrævet - de er kun instruktioner til SQL Server Management Studio til at udføre sætningerne op til dette punkt nu og derefter fortsætte. GO er ikke et T-SQL søgeord eller noget - det er bare en instruktion, der virker i SSMS.

Nogle gange har du brug for en GO - f.eks. hvis du tilføjer en kolonne til en tabel og derefter vil vælge den igen, skal du have en GO mellem tilføjelsen af ​​kolonnen og forespørgslen på den.

For eksempel. hvis du prøver at udføre dette, vil du få fejl fra SSMS:

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

Resultater i:

Pointen er:SSMS forsøger at verificere hele sætningen på én gang, men på SELECT-sætningen vil den klage over den manglende DateTimeStamp kolonne.

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO       

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

Hvis du sætter en GO mellem de to sætninger, vil det fungere, fordi SSMS ikke vil parse og verificere hele sætningen på forhånd - det vil gøre den første del og derefter kun parse den anden (efter GO ).

Men bortset fra situationer som denne, er GO næsten aldrig påkrævet.



  1. Omdøbning af indekser med sp_rename Procedure

  2. Ikke-superbruger kan ikke oprette forbindelse, hvis serveren ikke anmoder om en adgangskode, mens du bruger dblink

  3. Sådan finder du dubletter i 2 kolonner ikke 1

  4. Gendannelsesapparat til nul datatab