Bonjour,

Je souhaiterais affecter des valeurs dans @v_ind_code, @v_pay_code, @v_indnat_principale mais je ne vois pas comment m'y prendre.
En oracle j'aurais fait SELECT INTO unevariableRECORD et je l'aurais exploitée, mais sur sql server, je n'ai pas trouvé d'équivalent.

Pourriez-vous eclairer ma lanterne?

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
CREATE PROCEDURE [dbo].[web_nationalite] 
(
	@id_ind		int,
	@id_pays	int
)
AS
 
BEGIN
SET NOCOUNT ON;
DECLARE	@v_ind_code		int
DECLARE	@v_pay_code		int
DECLARE	@v_indnat_principale	bit
 
 
	IF( SELECT @v_ind_code = i.ind_code, @v_pay_code =  i.pay_code, i.indnat_date, i.indnat_date_fin, @v_indnat_principale = i.indnat_principale
	FROM individu_nationalite AS i
	WHERE i.ind_code = @id_ind AND i.indnat_principale = 1 )
 
		IF(@v_pay_code <> @id_pays)
			UPDATE individu_nationalite SET indnat_date_fin = CURRENT_TIMESTAMP, indnat_principale = 0
			WHERE individu_nationalite.ind_code = @id_ind
			INSERT INTO individu_nationalite (ind_code, pay_code, indnat_date, indnat_date_fin, indnat_principale)
			VALUES(@id_ind, @id_pays, CURRENT_TIMESTAMP, NULL, 1)
	ELSE
		INSERT INTO individu_nationalite (ind_code, pay_code, indnat_date, indnat_date_fin, indnat_principale)
		VALUES(@id_ind, @id_pays, CURRENT_TIMESTAMP, NULL, 1)
END
Merci d'avance

Axel Masset

EDIT: J'ai trouvé une piste, les CURSOR, je vais approfondir ça.