Réponse acceptée !
en fait, ce qui m'interesse n'est pas le nombre d'enregistrement de 'table_virtuel' mais la valeur de 'id_dem' qui est la pk d'une autre table nommée demande. Je vide 'table_virtuel' apres chaque validation des changements effectués par l'utilisateur. ca fonctionne en effet si @var=0 mais si @var=nbEnregistrements, il peut etre different de la valeur réelle de 'id_dem'. je ne suis surement pas tres explicite, excuse moi. voila ma new procedure stockee qui fonctionne.merci pour ton aide sim51
CREATE PROCEDURE InsertEtreAttribue @date_deb datetime, @date_exp datetime, @date_sup datetime, @wwid_pers varchar(50), @id_role bigint
AS
DECLARE @id_pers bigint
DECLARE @id_dem bigint
DECLARE @var bigint
SET @id_pers=(SELECT id_pers FROM personne WHERE wwid_pers=@wwid_pers)
SET @var=(SELECT DISTINCT id_dem FROM table_virtuel)
if(@var = NULL)
SET @id_dem=(SELECT MAX(id_dem)+1 FROM [demande])
else
SET @id_dem=@var
UPDATE role
SET date_deb=@date_deb, date_exp=@date_exp, date_sup=@date_sup
WHERE id_role=@id_role
INSERT INTO table_virtuel (id_dem, id_role, date_deb, date_exp, date_sup)
VALUES (@id_dem, @id_role, @date_deb, @date_exp, @date_sup)
GO