Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:czy muszę używać instrukcji GO między partiami?

Nie są one bezwzględnie wymagane — są tylko instrukcjami dla SQL Server Management Studio, aby wykonać instrukcje do tego momentu, a następnie kontynuować. GO jest nie słowo kluczowe T-SQL lub cokolwiek - to tylko instrukcja działająca w SSMS.

Czasami potrzebujesz GO – np. jeśli dodasz kolumnę do tabeli, a następnie chcesz ją ponownie wybrać, musisz mieć GO między dodaniem kolumny a zapytaniem o nią.

Np. jeśli spróbujesz to wykonać, otrzymasz błędy z SSMS:

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME

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

Wyniki w:

Chodzi o to, że SSMS próbuje od razu zweryfikować całą instrukcję, ale na instrukcji SELECT będzie narzekać na brak DateTimeStamp kolumna.

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO       

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

Jeśli umieścisz GO między dwiema instrukcjami, to zadziała, ponieważ SSMS nie przeanalizuje i nie zweryfikuje całej instrukcji z wyprzedzeniem - wykona pierwszą część, a następnie przeanalizuje tylko drugą (po GO ).

Ale poza sytuacjami takimi jak ta, GO prawie nigdy nie jest wymagane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MSSQL Select Top 10 zwycięskich wyników, w tym remisy i co najmniej jeden z każdej kategorii

  2. maksymalny rozmiar wiersza przekroczony podczas kopiowania pola varbinary(max)

  3. Jak zmienić wartości dla edycji Top X i wybrać Top X Rows w SQL Server Management Studio (SSMS) — SQL Server / TSQL Tutorial, część 20

  4. Kopiuj w modelu sąsiedztwa

  5. SQL Server 2008 — Jak zwrócić typ tabeli zdefiniowanej przez użytkownika z funkcji o wartościach przechowywanych w tabeli?