sql >> Database >  >> RDS >> Sqlserver

SQL Server:Moet ik GO-statements gebruiken tussen batches?

Ze zijn niet strikt vereist - het zijn slechts instructies voor de SQL Server Management Studio om de instructies tot nu toe af en toe uit te voeren en dan door te gaan. GO is niet een T-SQL-trefwoord of zoiets - het is gewoon een instructie die werkt in SSMS.

Soms heb je een GO nodig - b.v. als u een kolom aan een tabel toevoegt en deze vervolgens opnieuw wilt selecteren, moet u een GO hebben tussen het toevoegen van de kolom en het opvragen ervan.

bijv. als je dit probeert uit te voeren, krijg je fouten van SSMS:

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME

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

Resultaten in:

Het punt is:SSMS probeert de hele instructie in één keer te verifiëren, maar bij de SELECT-instructie klaagt het over de ontbrekende DateTimeStamp kolom.

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO       

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

Als je een GO tussen de twee instructies, zal het werken, omdat SSMS niet de hele verklaring van tevoren zal ontleden en verifiëren - het zal het eerste deel doen en dan alleen het tweede ontleden (na de GO ).

Maar afgezien van situaties als deze, is GO bijna nooit nodig.



  1. Kan ik (binnen de dbase) een maximale grootte instellen voor een bytea-veld in PostgreSQL?

  2. Arval SQLException:FATAL:sorry, er zijn al te veel clients in postgres

  3. Selecteer Meerdere keren Records uit tabel

  4. SQL Select inclusief gegevenstype en gegevenswaarden