Select into #temp ou Create table #temp
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:
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:
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