Většina lidí, kteří používají SQL Server, zná konvenci přidávání GO na konec každé dávky příkazů T-SQL. Ale možná méně známé je, že za GO můžete přidat také celé číslo určit, kolikrát se má dávka spustit.
Příklad 1 – Základní použití
Zde je příklad, jak to funguje.
SELECT GETDATE() AS DateTime;GO 3
Výsledek:
+-------------------------+| Datum a čas ||-------------------------|| 2020-01-08 09:26:31.663 |+-------------------------+Počáteční prováděcí smyčka+---------- -----------------+| Datum a čas ||-------------------------|| 2020-01-08 09:26:31.663 |+-------------------------+Počáteční prováděcí smyčka+---------- -----------------+| Datum a čas ||-------------------------|| 2020-01-08 09:26:31.663 |+-------------------------+Počáteční cyklus spuštění:0,578 s
Zadal jsem GO 3 což vedlo ke spuštění dotazu třikrát. Při každém spuštění dotazu se mi také zobrazila slova „Začátek spouštěcí smyčky“.
Dostávám různé výsledky pro tento dotaz v závislosti na tom, který nástroj jsem použil ke spuštění dotazu. Toto jsou výsledky, které jsem získal při používání mssql-cli nástroj příkazového řádku. Zlomkové sekundy jsou všechny stejné. Ale když jsem použil Azure Data Studio, zlomkové sekundy se zvýšily.
Příklad 2 – Tisk data/času
Zde je příklad, který jsem spustil pomocí Azure Data Studio, zobrazující přírůstky po zlomcích sekund.
DECLARE @theTime time(7) =GETDATE();PRINT @theTime;GO 5
Výsledek:
Zahájeno provádění dotazu na řádku 4Začátek spouštěcí smyčky09:31:40.610000009:31:40.616666709:31:40.620000009:31:40.623333309:31:40.6260 časy dokončení:0 2 050 0 krát 0. před>Příklad 3 – Příklad databáze
Zde je příklad vkládání dat do databáze.
CREATE TABLE LoopTest( LoopTestId uniqueidentifier NOT NULL DEFAULT NEWID(), InsertDate datetime2(7) NOT NULL DEFAULT GETDATE());GOINSERT LoopTest (LoopTestId, InsertDate)VALUES (DEFAULT, DEFAULT);GO 20SELECT *FROM LoopTestVýsledek:
+--------------------------------------+------- -----------------------+| LoopTestId | InsertDate ||--------------------------------------+-------- ----------------------|| d6eda0a2-710d-467e-a4cf-41602e161851 | 2020-01-08 09:37:38.4733333 || 0d8b3622-946f-4dce-816e-6123516da4e4 | 2020-01-08 09:37:38.4833333 || b3ac2482-7304-4846-a258-5dc51b2623f9 | 2020-01-08 09:37:38.4866667 || 1744836e-6af6-40c8-ab7e-98ca88e8ac1b | 2020-01-08 09:37:38.5000000 || 91c4858c-0c31-4d99-aba5-3a70424239fd | 2020-01-08 09:37:38.5066667 || f8b3de8b-7dd1-46c3-a7a8-b1af711d676d | 2020-01-08 09:37:38.5133333 || 306467d8-2e5b-4046-8102-a33f6906b41d | 2020-01-08 09:37:38.5233333 || 6cf93d79-5921-498e-ab14-55782284dc12 | 2020-01-08 09:37:38.5333333 || 7bb99e3b-d174-47eb-81b3-46b49982eaad | 2020-01-08 09:37:38.5500000 || c788d046-0c6c-4a2b-b3f1-3415470bf723 | 2020-01-08 09:37:38.5566667 || 52bb8951-8e71-46ac-ab98-1e261751dc5b | 2020-01-08 09:37:38.5600000 || 3a061055-0b1e-405c-aa13-480cdde8291c | 2020-01-08 09:37:38.5666667 || 1cabaf44-ac85-4bcf-8fee-7d349cb56561 | 2020-01-08 09:37:38.5700000 || 0cb3a690-66e9-458d-8c27-b0f44af4211d | 2020-01-08 09:37:38.5766667 || 19719223-eb9f-4477-82cc-e60995e0dcee | 2020-01-08 09:37:38.5800000 || 6da2484d-68c7-43f4-8ffc-968545974a42 | 2020-01-08 09:37:38.5833333 || d644bbed-047f-49ac-98c4-e032bdb4add3 | 2020-01-08 09:37:38.5900000 || 2c215900-0fd8-4889-8115-2a904ac72a61 | 2020-01-08 09:37:38.5933333 || 01ccc184-3657-4298-98a7-b31e158a56e8 | 2020-01-08 09:37:38.5933333 || 9270036f-8821-45c8-aef5-30aec2d4f4b4 | 2020-01-08 09:37:38.6000000 |+--------------------------------------- +-----------------------------+V tomto případě jsou oba sloupce vloženy s
DEFAULT, což má za následek, že každý sloupec je naplněn svou výchozí hodnotou (kterou také specifikuji). První sloupec má výchozí hodnotuNEWID(), funkce, která generuje GUID. Druhý sloupec má výchozí hodnotuGETDATE(), což má za následek aktuální datum a čas.