Bonjour,

Base SqlServer 2000 et 2005, dans une procédure stockée, je souhaiterais (si possible) utiliser une variable table de la même façon qu'une table temporaire

Voici mon code :

SELECT CodeVehicule
INTO #Temp1
FROM VehVehicule
--
DECLARE @VehDerniereIntervention TABLE (sVehiculeCode VarChar(10), dDerniereInterventionVeh DateTime)
--
-- Derniere intervention des véhicule
INSERT INTO @VehDerniereIntervention
SELECT sVehiculeCode, Max(dInterventionVeh) As dDerniereInterventionVeh
FROM VehIntervention
INNER JOIN #Temp1 ON VehIntervention.sVehiculeCode = #Temp1.CodeVehicule
GROUP BY sVehiculeCode
--
select * from @VehDerniereIntervention
--
-- Véhicule / Intervention -> dernier compteur pour le véhicule
SELECT DISTINCT CodeVehicule, dDerniereInterventionVeh, iInterventionVehCompteur
FROM VehIntervention
INNER JOIN #Temp1 ON VehIntervention.sVehiculeCode = #Temp1.CodeVehicule
INNER JOIN @VehDerniereIntervention ON VehIntervention.sVehiculeCode = @VehDerniereIntervention.sVehiculeCode
AND VehIntervention.dInterventionVeh = @VehDerniereIntervention.dDerniereInterventionVeh
ORDER BY CodeVehicule



Le select de ma variable @VehDerniereIntervention fonctionne très bien, c'est dans le second select que cela se gâte. Le résultat est : "La variable '@VehDerniereIntervention' doit être déclarée."

Est ce que cela signifie qu'une variable table ne peut être utilisée comme une table temporaire ? Il est impossible de faire autre chose que travailler sur les données de celle-ci et afficher le résultat ?

Merci de vos réponse.