SQL सर्वर का उपयोग करने वाले अधिकांश लोग GO
adding जोड़ने की परंपरा के बारे में जानते हैं टी-एसक्यूएल स्टेटमेंट के प्रत्येक बैच के अंत तक। लेकिन शायद कम आम तौर पर जाना जाता है, यह है कि आप GO
. के बाद एक पूर्णांक भी जोड़ सकते हैं यह निर्दिष्ट करने के लिए कि बैच कितनी बार चलना चाहिए।
उदाहरण 1 - मूल उपयोग
यह कैसे काम करता है इसका एक उदाहरण यहां दिया गया है।
SELECT GETDATE() AS DateTime; GO 3
परिणाम:
+-------------------------+ | DateTime | |-------------------------| | 2020-01-08 09:26:31.663 | +-------------------------+ Beginning execution loop +-------------------------+ | DateTime | |-------------------------| | 2020-01-08 09:26:31.663 | +-------------------------+ Beginning execution loop +-------------------------+ | DateTime | |-------------------------| | 2020-01-08 09:26:31.663 | +-------------------------+ Beginning execution loop Time: 0.578s
मैंने GO 3
. निर्दिष्ट किया है जिसके परिणामस्वरूप क्वेरी तीन बार चल रही थी। हर बार क्वेरी चलने पर मुझे "शुरुआती निष्पादन लूप" शब्द भी मिलते हैं।
मुझे इस क्वेरी के लिए अलग-अलग परिणाम मिलते हैं, इस पर निर्भर करता है कि मैं किस टूल का उपयोग क्वेरी को चलाने के लिए करता था। mssql-cli . का उपयोग करते समय मुझे ये परिणाम मिले हैं कमांड लाइन उपकरण। भिन्नात्मक सेकंड सभी समान हैं। लेकिन जब मैंने Azure डेटा स्टूडियो का उपयोग किया, तो आंशिक सेकंड बढ़ गए।
उदाहरण 2 - प्रिंट करने की तारीख/समय
यहां एक उदाहरण दिया गया है कि मैंने Azure डेटा स्टूडियो का उपयोग करके आंशिक सेकंड को बढ़ाते हुए दिखाया।
DECLARE @theTime time(7) = GETDATE(); PRINT @theTime; GO 5
परिणाम:
Started executing query at Line 4 Beginning execution loop 09:31:40.6100000 09:31:40.6166667 09:31:40.6200000 09:31:40.6233333 09:31:40.6266667 Batch execution completed 5 times... Total execution time: 00:00:00.022
उदाहरण 3 - एक डेटाबेस उदाहरण
यहां एक उदाहरण दिया गया है जो डेटा को डेटाबेस में सम्मिलित करता है।
CREATE TABLE LoopTest ( LoopTestId uniqueidentifier NOT NULL DEFAULT NEWID(), InsertDate datetime2(7) NOT NULL DEFAULT GETDATE() ); GO INSERT LoopTest (LoopTestId, InsertDate) VALUES (DEFAULT, DEFAULT); GO 20 SELECT * FROM LoopTest; GO
परिणाम:
+--------------------------------------+-----------------------------+ | 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 | +--------------------------------------+-----------------------------+
इस स्थिति में, दोनों कॉलम DEFAULT
. के साथ डाले जा रहे हैं , जिसके परिणामस्वरूप प्रत्येक कॉलम अपने डिफ़ॉल्ट मान (जिसे मैं भी निर्दिष्ट करता हूं) के साथ पॉप्युलेट किया जा रहा है। पहले कॉलम का डिफ़ॉल्ट मान NEWID()
. होता है , एक फ़ंक्शन जो GUID उत्पन्न करता है। दूसरे कॉलम में डिफ़ॉल्ट GETDATE()
है , जिसके परिणामस्वरूप वर्तमान दिनांक और समय मिलता है।