Pytanie : używać rozdział w stary kod

dlaczego ty dlaczego sql 2005 przegradzać pomysł w ten kursor ono skuteczny?

thanks
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
Create Proc
Oznajmiać Zmienna
stawiać wartość w zmienna
Wkładać 4 Zastępca Stół & Zaludniać (#SI_OVER_I być jeden)

Oznajmiać @IncomingId int
Oznajmiać @SI_ID int
OZNAJMIAĆ BenchCursor KURSOR DLA
	WYBIERAĆ ODRĘBNY IncomingId, SI_ID OD #SI_OVER_I rozkaz SI_ID
Otwierać BenchCursor
Przynosić Następnie Od BenchCursor W @IncomingId, @SI_ID
	Podczas Gdy @@Fetch_Status = (0)
Zaczynać

	Aktualizować #SI_OVER_I 
	Ustawiać SI_Seq = (Wybierać max (SI_Seq) od #SI_OVER_I dokąd IncomingId = @IncomingId) + (1) 
	od #SI_OVER_I dokąd IncomingId = @IncomingId i SI_ID = @SI_ID

Przynosić Następnie Od BenchCursor W @IncomingId, @SI_ID
Końcówka

Zamknięty BenchCursor
Dealokować BenchCursor 

Tworzyć Zastępca stół the dane
Tworzyć Definitywny zastępca stół the definitywny dane
Wtedy aktualizować wszystkie the definitywny dane według biznesowy reguła

Odpowiedź : używać rozdział w stary kod

używać kursor dla ten swój prosty ustalony przerób

Tworzyć Proc
Oznajmiać Zmienna
stawiać wartość w zmienna
Wkładać 4 Zastępca Stół & Zaludniać (#SI_OVER_I być jeden)



Aktualizować A
   Ustawiać SI_Seq = b.maxsi + y.rn
  od #SI_OVER_I jako A
 Wewnętrzny Łączyć (wybrany incomingid, wybrany (si_seq) jako maxsi
               od #si_pver_i
              grupa incomingid) jako B
    na a.incomingid=b.incomingid
 Wewnętrzny Łączyć (wybrany incomingid, row_number () (rozkaz si_id) jako rn
               od (wybierać odrębny incomingid, si_id od #si_over_i) jako x  
             ) jako Y
    na a.incomingid=y.incomingid
 dokąd IncomingId = @IncomingId i SI_ID = @SI_ID


Tworzyć Zastępca stół the dane
Tworzyć Definitywny zastępca stół the definitywny dane
Wtedy aktualizować wszystkie the definitywny dane według biznesowy reguła
Inne rozwiązania  
 
programming4us programming4us