ŠAJĀ UZDEVUMĀ

Kopsavilkums

Šajā rakstā ir aprakstītas dažādas metodes, ko var izmantot, lai simulētu ienesamu, piemēram, ienestu un nākamā loģiku iekļautā procedūrā, trigerī vai Transact-SQL paketē.

Transact-SQL priekšrakstu izmantošana, lai to atkārtot rezultātu kopā

Pastāv trīs metodes, ko var izmantot, lai atkārtotu rezultātu kopu, izmantojot Transact-SQL priekšrakstus. Viens paņēmiens ir temp tabulu lietošana. Izmantojot šo metodi, tiek izveidots sākotnējais priekšraksts SELECT "momentuzņēmums" un izmantot to kā pamatu "kursora izveidei". Piemēram:

/********** example 1 **********/ declare @au_id char( 11 )set rowcount 0select * into #mytemp from authorsset rowcount 1select @au_id = au_id from #mytempwhile @@rowcount <> 0begin    set rowcount 0    select * from #mytemp where au_id = @au_id    delete #mytemp where au_id = @au_id    set rowcount 1    select @au_id = au_id from #mytemp<BR/>endset rowcount 0

Otrā metode ir lietot funkciju min , lai uzreiz "dotos" uz vienu rindu. Izmantojot šo metodi, tiks izpildītas jaunās rindas, kas tika pievienotas pēc saglabātās procedūras sākšanas, ja jaunā rinda ir unikāls identifikators, kas ir lielāks par pašreizējo rindu, kas tiek apstrādāta vaicājumā. Piemēram:

/********** example 2 **********/ declare @au_id char( 11 )select @au_id = min( au_id ) from authorswhile @au_id is not nullbegin    select * from authors where au_id = @au_id    select @au_id = min( au_id ) from authors where au_id > @au_idend

Piezīme. gan 1. un 2. piemērā tiek pieņemts, ka katrā avota tabulas rindā ir unikāls identifikators. Dažos gadījumos nav unikāla identifikatora. Ja tā ir, varat modificēt temp tabulas metodi, lai izmantotu jaunizveidotās atslēgas kolonnu. Piemēram:

/********** example 3 **********/ set rowcount 0select NULL mykey, * into #mytemp from authorsset rowcount 1update #mytemp set mykey = 1while @@rowcount > 0begin    set rowcount 0    select * from #mytemp where mykey = 1    delete #mytemp where mykey = 1    set rowcount 1    update #mytemp set mykey = 1endset rowcount 0

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×