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.
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
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;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;
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;
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
Partager