trešdiena, 2011. gada 19. janvāris

Par "Go" komandu

Divas lietas- (1) "Go" nav T-SQL komanda un (2) "Go" norāda paketes (batch) beigas, nevis sākumu.

Interesanta nianse, ko nekad nebiju piefiksējis. Šāds skripts:
print 'Hello!'
go 100
izvadīs vārdu 'Hello!' 100 reizes!

Varētu noderēt ja vajag ievietot testa datus tabulā (cikla vietā)..
Vai arī, piemēram, lai sadalītu Update komandu vairākās mazākās transakcijās:

Update Top (1000) TestTable
    Set Vards = 'y'
Where Vards = 'x'
Go 20  
[Papildināts 2012-01-12] No ātrdarbības viedokļa šis nav tas īpaši labs variants- komanda tiek nosūtīta attiecīgo skaitu reižu. Lai tas būtu efektīvāk, labāk rakstīt while ciklu!

4 komentāri:

  1. Hmmm, a pēdējā piemērā tiešām koriģēs katru reizi jaunus (nākošos) tabulas TestTable ierakstus, nevis katru no 20 reizēm ņems pirmos 1000, kuri pagadās? Iespējams tos pašus, kas jau koriģēti iepriekš?

    AtbildētDzēst
  2. Piemērs nav tas veiksmīgākais (man stāvēja vaļā skripts no raksta- "Lietotāja definēti T-SQL datu tipi").
    tas ko izdarīju- saliku pārdesmit tūkstošus rindiņu ar vērtību 'x' kolonā 'Vards'. un Update komanda ar where.. tādēļ tiek paņemti visu laiku 1000 rindas, kas vēl nav mainītas.

    Tas būtu tas pats, kā sarakstīt 20 reizies:
    Update Top (1000) TestTable
    Set Vards = 'y'
    Where Vards = 'x';

    AtbildētDzēst
  3. Ā ok kaut kā man tas where paslīdēja garām :) Jā tad protams sanāk ka ņem jaunus ierakstus, atbilstoši where nosacījumam.
    BTW ne par tēmu - bet nav kaut kāda iespēja, ja rakstam pieraksta komentāru, tad pierakstīties, lai nākošos komentārus sūta uz e-pastu? A to besīgi čekot...

    AtbildētDzēst
  4. Nu divi varianti:
    - Augšā labajā stūrī "Jaunumu" sadaļā pieliku RSS komentāru barotni (tie latviskojumi.. bet nu cenšos latviski).
    - Ja ir google konts, tad atstājot savu komentāru kā Google lietotājam, parādās iespēja "abonēt izmantojot e-pasta ziņojumu"

    Bet ja nav rss un nav gmail, tad šobrīd ideju nav..

    AtbildētDzēst