Bonjour a tous et merci de votre temps et de votre aide.

Je debute en MS SQL Server et j'ai une application avec 2 tables qui ont exactement les memes champs (note : je dois conserver les 2 tables).
Quand j'interroge l'une generalement j'interroge l'autre.
Dans une strored procdure voici que j'ai fait pour un de mes traitements.
Ceci est un exemple mais j'ai le cas tres souvant dans mon appli.

Code sql : 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
         SELECT 
		T.Trip#, 
		Cast(T.DatePosted as DATETIME) AS DateCriteria, 
		(CASE WHEN C.[FollowUpNo] IS NULL AND T.[FollowUp_No]=0 THEN 2 -- It is a 0, so at least 2 notices have been sent
		 ELSE CASE WHEN C.[Level] = 1 THEN 1 -- 1st specified follow up
			  ELSE CASE WHEN C.[Level] > 1 THEN 2 -- 2nd or more specified follow up
			       END
			  END
		 END) as NoticeNumber
	FROM MY_DATA AS T 
		LEFT JOIN #TEMP_Config as C 
			ON T.[Region] =  C.[Region]
			   AND T.[Application] = C.[Source]
			   AND T.[FollowUp_No] = C.[FollowUpNo]
	WHERE ISDATE(T.DatePosted)=1
		  AND (CAST(T.DatePosted as DATETIME) BETWEEN @StartDate AND @EndDate)
		  AND T.[FollowUp_No] IS NOT NULL

Et la seule difference est ici :

ou je vais changer les noms pour MY_DATA_AutreNom et actuellement ce que je fais c'est recopier le code et le modifier.

Ce que j'aimerai et ce sans me retrouver avec une quirielle d'objets dans ma BD c'est avoir la possibilite de passer le nom de la table en parametre.

Avoir quelque chose comme :

Code sql : 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
         SELECT 
		T.Trip#, 
		Cast(T.DatePosted as DATETIME) AS DateCriteria, 
		(CASE WHEN C.[FollowUpNo] IS NULL AND T.[FollowUp_No]=0 THEN 2 -- It is a 0, so at least 2 notices have been sent
		 ELSE CASE WHEN C.[Level] = 1 THEN 1 -- 1st specified follow up
			  ELSE CASE WHEN C.[Level] > 1 THEN 2 -- 2nd or more specified follow up
			       END
			  END
		 END) as NoticeNumber
	FROM {{{Ici_La_Table}}} AS T 
		LEFT JOIN #TEMP_Config as C 
			ON T.[Region] =  C.[Region]
			   AND T.[Application] = C.[Source]
			   AND T.[FollowUp_No] = C.[FollowUpNo]
	WHERE ISDATE(T.DatePosted)=1
		  AND (CAST(T.DatePosted as DATETIME) BETWEEN @StartDate AND @EndDate)
		  AND T.[FollowUp_No] IS NOT NULL

Que recommandez-vous ?

A+