Bonjour,
Quel est le critère de choix entre les deux syntaxes suivantes,
select into ou create +insert into select.
Je suis dans une procédure stockée.
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
declare 	@pIN_DatePivot Datetime  
set @pIN_DatePivot='20090101'
CREATE TABLE #ORDERS(
	[Scenario_Id] [int] NOT NULL,
	[FileCom_Id] [nvarchar](10) NOT NULL,
	[CPE_Id] [nvarchar](10) NOT NULL,
	[Order_Amount] [numeric](18, 5) NOT NULL
);
 
 
	Insert into #ORDERS
	([Scenario_Id],
	[FileCom_Id],
	[CPE_Id],
	[Order_Amount])
 
	Select Scenario_id,
		FileCom_id,
		CPE_id,
		Sum(order_amount) as order_amount
 
	from ASF_PROJECT_ORDERS
	where  full_day<@pIN_DatePivot
	group by Scenario_id,FileCom_id,CPE_id;
 
 
select * from #ORDERS;
 
drop table #ORDERS;
Ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
declare 	@pIN_DatePivot Datetime  
set @pIN_DatePivot='20090101'
	Select Scenario_id,
		FileCom_id,
		CPE_id,
		Sum(order_amount) as order_amount
	into #ORDERS	
	from ASF_PROJECT_ORDERS
	where  full_day<@pIN_DatePivot
	group by Scenario_id,FileCom_id,CPE_id;
 
select * from #ORDERS;
 
drop table #ORDERS;
Dans le cas réel, après le remplissage de la table temporaire, je supprime les données dont full_day<@pIN_DatePivot et je réinsere les données de la table #ORDERS avec un full_day -1 mois;
ASF_PROJECT_ORDERS est une table de faits qui a une volumétrie assez importantes et dont on ne veut garder que les 4 dernières années.

Donc la question est "dans quel cas utiliser la syntaxe select into et dans quel cas utiliser create".

Merci de votre aide.
Soazig