Bonjour,
Je suis en train de migrer des procs stockées d'une BDD Sybase vers une BDD SQL Server et je suis tombé sur un cas qui me laisse perplexe. J'ai tenté quelquechose mais je ne suis pas sur du résultat et je ne peux pas tester car je n'ai pas encore l'accès à la BDD. Je compte donc sur votre expérience.![]()
Voici un exemple de type de proc coté Sybase:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31 SELECT transfer.cd_acv, ... transfer.dt_pse_ctn_mbl, zonstk_a.cd_hal, zonstk_a.cd_zon_lgs, transfer.dt_pos_ctn_mbl, zonstk_b.cd_hal, zonstk_b.cd_zon_lgs, transfer.no_tft, transfer.cd_ori_ctn_mbl, locctn_a.cd_zon_stk, locctn_a.no_emp_zon_stk, locctn_b.cd_zon_stk, locctn_b.no_emp_zon_stk FROM locctn locctn_a, transfer, zonstk zonstk_a, locctn locctn_b, zonstk zonstk_b WHERE ( transfer.cd_ctn_mbl *= locctn_a.cd_ctn_mbl ) and ( transfer.cd_ori_ctn_mbl *= locctn_a.cd_ori_ctn_mbl ) and ( transfer.no_loc_ctn_pse *= locctn_a.no_loc_ctn ) and ( locctn_a.cd_zon_stk *= zonstk_a.cd_zon_stk ) and ( transfer.cd_ctn_mbl *= locctn_b.cd_ctn_mbl ) and ( transfer.cd_ori_ctn_mbl *= locctn_b.cd_ori_ctn_mbl ) and ( transfer.no_loc_ctn_pos *= locctn_b.no_loc_ctn ) and ( locctn_b.cd_zon_stk *= zonstk_b.cd_zon_stk ) and ( transfer.cd_ctn_mbl like @cd_ctn_mbl or (transfer.cd_ctn_mbl = null and @cd_ctn_mbl = '%')) ...
J'ai migré de cette façon:
Pensez-vous que le résultat sera le même ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28 SELECT transfer.cd_acv, ... transfer.dt_pse_ctn_mbl, zonstk_a.cd_hal, zonstk_a.cd_zon_lgs, transfer.dt_pos_ctn_mbl, zonstk_b.cd_hal, zonstk_b.cd_zon_lgs, transfer.no_tft, transfer.cd_ori_ctn_mbl, -- MODIFS locctn_a2.cd_zon_stk, locctn_a2.no_emp_zon_stk, locctn_b2.cd_zon_stk, locctn_b2.no_emp_zon_stk FROM transfer LEFT JOIN locctn locctn_a ON transfer.cd_ctn_mbl = locctn_a.cd_ctn_mbl AND transfer.cd_ori_ctn_mbl = locctn_a.cd_ori_ctn_mbl AND transfer.no_loc_ctn_pse = locctn_a.no_loc_ctn LEFT JOIN locctn locctn_b ON transfer.cd_ctn_mbl = locctn_b.cd_ctn_mbl AND transfer.cd_ori_ctn_mbl = locctn_b.cd_ori_ctn_mbl AND transfer.no_loc_ctn_pos = locctn_b.no_loc_ctn, locctn locctn_a2 LEFT JOIN zonstk zonstk_a ON occtn_a2.cd_zon_stk = zonstk_a.cd_zon_stk, locctn locctn_b2 LEFT JOIN zonstk zonstk_b ON tn_b2.cd_zon_stk = zonstk_b.cd_zon_stk WHERE ( transfer.cd_ctn_mbl like @cd_ctn_mbl or (transfer.cd_ctn_mbl = null and @cd_ctn_mbl = '%')) ...
Merci d'avance pour vos réponses.
Vincent
Partager