SELECT INTO conditionnel

Le
toto
bonjour,

J'ai un petit probleme dans une SP.

Je dois faire un SELECT INTO qui depend de certains arguments.

Je voulais donc faire qq chose du genre :

IF test
BEGIN
SELECT ..
INTO #TMP
FROM
WHERE condition1
END
ElsE
BEGIN
SELECT ..
INTO #TMP
FROM
WHERE condition2
END

à la verif syntaxique, il me dit qu'un objet #TMP existe deja

je modifie un peu en gardant le premier select intact mais en placant le
second dans un EXEC

IF test
BEGIN
SELECT ..
INTO #TMP
FROM
WHERE condition1
END
ElsE
BEGIN
EXEC ('SELECT ..
INTO #TMP
FROM
WHERE condition2')
END

la verif syntaxique est ok mais le probleme est que maintenant lorsque la
condition 2 est reunie, il me dit à l'execution que #TMP n'existe pas ; il a
du faire son EXEC dans un environnement different .
J'ai egalement essayé de mettre les 2 select into dans un exec mais rien n'y
fait.

Ma question est donc :
comment definir un select into conditionnel dans une table temporaire et
pouvoir la reutiliser apres.

Merci pour votre aide pour un newbie en T-SQL

Cordialement
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
loccitan
Le #11721781
select * into #TMP from (select .. from .. WHERe condition1 union select
.. from .. WHERe condition2) bb
A+pascal


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.656 / Virus Database: 421 - Release Date: 09/04/2004
TedIF
Le #11721771
SELECT ..
INTO #TMP
FROM ...
WHERE (test and condition1) or Condition2

"toto" news:%
bonjour,

J'ai un petit probleme dans une SP.

Je dois faire un SELECT INTO qui depend de certains arguments.

Je voulais donc faire qq chose du genre :

IF test
BEGIN
SELECT ..
INTO #TMP
FROM ...
WHERE condition1
END
ElsE
BEGIN
SELECT ..
INTO #TMP
FROM ...
WHERE condition2
END

à la verif syntaxique, il me dit qu'un objet #TMP existe deja

je modifie un peu en gardant le premier select intact mais en placant le
second dans un EXEC

IF test
BEGIN
SELECT ..
INTO #TMP
FROM ...
WHERE condition1
END
ElsE
BEGIN
EXEC ('SELECT ..
INTO #TMP
FROM ...
WHERE condition2')
END

la verif syntaxique est ok mais le probleme est que maintenant lorsque la
condition 2 est reunie, il me dit à l'execution que #TMP n'existe pas ; il


a
du faire son EXEC dans un environnement different .
J'ai egalement essayé de mettre les 2 select into dans un exec mais rien


n'y
fait.

Ma question est donc :
comment definir un select into conditionnel dans une table temporaire et
pouvoir la reutiliser apres.

Merci pour votre aide pour un newbie en T-SQL

Cordialement





toto
Le #11721741
merci pour vos réponses, qui permettent de contourner le probleme (en
utilisant une requete unique).
cependant, si ma requete n'avait pas pu etre "unifiée" (cad obligation de
faire 2 requetes), comment auriez vous fait ?

Merci


"TedIF" a écrit dans le message de news:


SELECT ..
INTO #TMP
FROM ...
WHERE (test and condition1) or Condition2

"toto" news:%
> bonjour,
>
> J'ai un petit probleme dans une SP.
>
> Je dois faire un SELECT INTO qui depend de certains arguments.
>
> Je voulais donc faire qq chose du genre :
>
> IF test
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition1
> END
> ElsE
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition2
> END
>
> à la verif syntaxique, il me dit qu'un objet #TMP existe deja
>
> je modifie un peu en gardant le premier select intact mais en placant le
> second dans un EXEC
>
> IF test
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition1
> END
> ElsE
> BEGIN
> EXEC ('SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition2')
> END
>
> la verif syntaxique est ok mais le probleme est que maintenant lorsque


la
> condition 2 est reunie, il me dit à l'execution que #TMP n'existe pas ;


il
a
> du faire son EXEC dans un environnement different .
> J'ai egalement essayé de mettre les 2 select into dans un exec mais rien
n'y
> fait.
>
> Ma question est donc :
> comment definir un select into conditionnel dans une table temporaire et
> pouvoir la reutiliser apres.
>
> Merci pour votre aide pour un newbie en T-SQL
>
> Cordialement
>
>
>




bruno reiter [MVP]
Le #11721731
éventuellement ##TMP, si on ne peut exécuter la SP de manière concurrente

br

"toto" news:
merci pour vos réponses, qui permettent de contourner le probleme (en
utilisant une requete unique).
cependant, si ma requete n'avait pas pu etre "unifiée" (cad obligation de
faire 2 requetes), comment auriez vous fait ?

Merci


"TedIF" a écrit dans le message de news:

>
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE (test and condition1) or Condition2
>
> "toto" > news:%
> > bonjour,
> >
> > J'ai un petit probleme dans une SP.
> >
> > Je dois faire un SELECT INTO qui depend de certains arguments.
> >
> > Je voulais donc faire qq chose du genre :
> >
> > IF test
> > BEGIN
> > SELECT ..
> > INTO #TMP
> > FROM ...
> > WHERE condition1
> > END
> > ElsE
> > BEGIN
> > SELECT ..
> > INTO #TMP
> > FROM ...
> > WHERE condition2
> > END
> >
> > à la verif syntaxique, il me dit qu'un objet #TMP existe deja
> >
> > je modifie un peu en gardant le premier select intact mais en placant


le
> > second dans un EXEC
> >
> > IF test
> > BEGIN
> > SELECT ..
> > INTO #TMP
> > FROM ...
> > WHERE condition1
> > END
> > ElsE
> > BEGIN
> > EXEC ('SELECT ..
> > INTO #TMP
> > FROM ...
> > WHERE condition2')
> > END
> >
> > la verif syntaxique est ok mais le probleme est que maintenant lorsque
la
> > condition 2 est reunie, il me dit à l'execution que #TMP n'existe pas


;
il
> a
> > du faire son EXEC dans un environnement different .
> > J'ai egalement essayé de mettre les 2 select into dans un exec mais


rien
> n'y
> > fait.
> >
> > Ma question est donc :
> > comment definir un select into conditionnel dans une table temporaire


et
> > pouvoir la reutiliser apres.
> >
> > Merci pour votre aide pour un newbie en T-SQL
> >
> > Cordialement
> >
> >
> >
>
>




lionelp
Le #11721551
Bonjour,

create table #tempo

if condition
insert into #tempo select1
else
insert into #tempo select2

Sinon le cas où l'on doit faire 2 requêtes doit être assez
rare.

Cordialement,
LionelP

-----Message d'origine-----
merci pour vos réponses, qui permettent de contourner le


probleme (en
utilisant une requete unique).
cependant, si ma requete n'avait pas pu etre "unifiée"


(cad obligation de
faire 2 requetes), comment auriez vous fait ?

Merci


"TedIF" a écrit dans le message de news:


SELECT ..
INTO #TMP
FROM ...
WHERE (test and condition1) or Condition2

"toto" news:%
> bonjour,
>
> J'ai un petit probleme dans une SP.
>
> Je dois faire un SELECT INTO qui depend de certains




arguments.
>
> Je voulais donc faire qq chose du genre :
>
> IF test
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition1
> END
> ElsE
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition2
> END
>
> à la verif syntaxique, il me dit qu'un objet #TMP




existe deja
>
> je modifie un peu en gardant le premier select intact




mais en placant le
> second dans un EXEC
>
> IF test
> BEGIN
> SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition1
> END
> ElsE
> BEGIN
> EXEC ('SELECT ..
> INTO #TMP
> FROM ...
> WHERE condition2')
> END
>
> la verif syntaxique est ok mais le probleme est que




maintenant lorsque
la
> condition 2 est reunie, il me dit à l'execution que




#TMP n'existe pas ;
il
a
> du faire son EXEC dans un environnement different .
> J'ai egalement essayé de mettre les 2 select into




dans un exec mais rien
n'y
> fait.
>
> Ma question est donc :
> comment definir un select into conditionnel dans une




table temporaire et
> pouvoir la reutiliser apres.
>
> Merci pour votre aide pour un newbie en T-SQL
>
> Cordialement
>
>
>






.



Publicité
Poster une réponse
Anonyme