Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
essaie avec ##
sauf erreur de ma part, la table #TABLE est cree dans le contexte de
l'utilisateur qui la cree.
Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
(Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca devrait
fonctionner)
CREATE TABLE #TableTemp
(
Col1 nvarchar(50) NULL
)
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Donc, le plus simple ici est de creer une table ##Tabletemp qui est
temporaire, mais avec le server comme scope.
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"FAUCHILLE Stéphan" wrote in message
news:%Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
essaie avec ##
sauf erreur de ma part, la table #TABLE est cree dans le contexte de
l'utilisateur qui la cree.
Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
(Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca devrait
fonctionner)
CREATE TABLE #TableTemp
(
Col1 nvarchar(50) NULL
)
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Donc, le plus simple ici est de creer une table ##Tabletemp qui est
temporaire, mais avec le server comme scope.
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"FAUCHILLE Stéphan" <toto@titi.fr> wrote in message
news:%23RvWRcwLFHA.3760@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
essaie avec ##
sauf erreur de ma part, la table #TABLE est cree dans le contexte de
l'utilisateur qui la cree.
Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
(Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca devrait
fonctionner)
CREATE TABLE #TableTemp
(
Col1 nvarchar(50) NULL
)
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Donc, le plus simple ici est de creer une table ##Tabletemp qui est
temporaire, mais avec le server comme scope.
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"FAUCHILLE Stéphan" wrote in message
news:%Bonjour,
J'ai le code suivant dans une procédure stockée
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM #TableTemp
DROP TABLE #TableTemp
Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
temporaire de cette manière??
Quand je supprime le "#" cela fonctionne.
Merci pour vos réponse
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." a écrit dans le message de news:
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" wrote in message
> news:%
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." <tophe_news@hotmail.com> a écrit dans le message de news:
OsAjvwwLFHA.2136@TK2MSFTNGP14.phx.gbl...
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" <toto@titi.fr> wrote in message
> news:%23RvWRcwLFHA.3760@TK2MSFTNGP12.phx.gbl...
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." a écrit dans le message de news:
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" wrote in message
> news:%
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." a écrit dans le message de news:
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" wrote in message
> news:%
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." <tophe_news@hotmail.com> a écrit dans le message de news:
OsAjvwwLFHA.2136@TK2MSFTNGP14.phx.gbl...
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" <toto@titi.fr> wrote in message
> news:%23RvWRcwLFHA.3760@TK2MSFTNGP12.phx.gbl...
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
avec une table ##, car les tables globales sont effacées lorsque la
connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
le cas présent dès la fin du EXEC.
Cordialement.
JN BERGER
"Chris V." a écrit dans le message de news:
> essaie avec ##
>
> sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> l'utilisateur qui la cree.
>
> Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
>
> (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
> fonctionner)
>
>
> CREATE TABLE #TableTemp
> (
> Col1 nvarchar(50) NULL
> )
> SELECT * FROM #TableTemp
>
> DROP TABLE #TableTemp
>
> Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> temporaire, mais avec le server comme scope.
>
> Chris
>
> --
> ______________________________________________
> It's still better that if it would have been worst, isn't it ?
> C'est toujours mieux que si c'etait pire !
> "FAUCHILLE Stéphan" wrote in message
> news:%
>> Bonjour,
>>
>> J'ai le code suivant dans une procédure stockée
>>
>> DECLARE @LngStr nvarchar(4000)
>>
>> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
>>
>> EXEC sp_executesql @LngStr
>>
>> SELECT * FROM #TableTemp
>>
>> DROP TABLE #TableTemp
>>
>> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
>> temporaire de cette manière??
>>
>> Quand je supprime le "#" cela fonctionne.
>>
>> Merci pour vos réponse
>>
>>
>
>
Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" wrote in
message news:
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." a écrit dans le message de news:
>
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" wrote in message
> > news:%
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>
Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" <j-n.enlevezmoi.berger@club-internet.fr> wrote in
message news:uAhgyUyLFHA.3988@tk2msftngp13.phx.gbl...
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." <tophe_news@hotmail.com> a écrit dans le message de news:
> OsAjvwwLFHA.2136@TK2MSFTNGP14.phx.gbl...
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" <toto@titi.fr> wrote in message
> > news:%23RvWRcwLFHA.3760@TK2MSFTNGP12.phx.gbl...
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>
Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" wrote in
message news:
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." a écrit dans le message de news:
>
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" wrote in message
> > news:%
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>
Autant pour moi, l'aide de Microsoft indique effectivement :
Les tables temporaires globales sont supprimées automatiquement lorsque la
session qui a créé la table se termine, et que toutes les autres tâches
n'y
font plus référence. L'association entre une tâche et une table n'est
assurée
que pendant la durée d'une seule instruction Transact-SQL. Cela signifie
qu'une table temporaire globale est supprimée à la fin de la dernière
instruction Transact-SQL qui faisait activement référence à la table
lorsque
la session de création s'est terminée.
Comprenne qui pourra, mais ça semble effectivement correspondre au cas
présent.
Cordialement.
JN BERGER
"Chris V." wrote:Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" wrote in
message news:
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas
> mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." a écrit dans le message de news:
>
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" wrote in message
> > news:%
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une
> >> table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>
Autant pour moi, l'aide de Microsoft indique effectivement :
Les tables temporaires globales sont supprimées automatiquement lorsque la
session qui a créé la table se termine, et que toutes les autres tâches
n'y
font plus référence. L'association entre une tâche et une table n'est
assurée
que pendant la durée d'une seule instruction Transact-SQL. Cela signifie
qu'une table temporaire globale est supprimée à la fin de la dernière
instruction Transact-SQL qui faisait activement référence à la table
lorsque
la session de création s'est terminée.
Comprenne qui pourra, mais ça semble effectivement correspondre au cas
présent.
Cordialement.
JN BERGER
"Chris V." wrote:
Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" <j-n.enlevezmoi.berger@club-internet.fr> wrote in
message news:uAhgyUyLFHA.3988@tk2msftngp13.phx.gbl...
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas
> mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." <tophe_news@hotmail.com> a écrit dans le message de news:
> OsAjvwwLFHA.2136@TK2MSFTNGP14.phx.gbl...
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" <toto@titi.fr> wrote in message
> > news:%23RvWRcwLFHA.3760@TK2MSFTNGP12.phx.gbl...
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une
> >> table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>
Autant pour moi, l'aide de Microsoft indique effectivement :
Les tables temporaires globales sont supprimées automatiquement lorsque la
session qui a créé la table se termine, et que toutes les autres tâches
n'y
font plus référence. L'association entre une tâche et une table n'est
assurée
que pendant la durée d'une seule instruction Transact-SQL. Cela signifie
qu'une table temporaire globale est supprimée à la fin de la dernière
instruction Transact-SQL qui faisait activement référence à la table
lorsque
la session de création s'est terminée.
Comprenne qui pourra, mais ça semble effectivement correspondre au cas
présent.
Cordialement.
JN BERGER
"Chris V." wrote:Apres tests, le code suivant fonctionne :
DECLARE @LngStr nvarchar(4000)
SET @LngStr = 'CREATE TABLE ##TableTemp (Col1 nvarchar(50) NULL)'
EXEC sp_executesql @LngStr
SELECT * FROM ##TableTemp
DROP TABLE ##TableTemp
Chris
--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !
"Jean-Nicolas BERGER" wrote in
message news:
> Sauf erreur de ma part, le code proposé à l'origine ne marchera pas
> mieux
> avec une table ##, car les tables globales sont effacées lorsque la
> connexion dans laquelle elles ont été créées est suprimée, c'est-à-dire
dans
> le cas présent dès la fin du EXEC.
> Cordialement.
> JN BERGER
>
>
> "Chris V." a écrit dans le message de news:
>
> > essaie avec ##
> >
> > sauf erreur de ma part, la table #TABLE est cree dans le contexte de
> > l'utilisateur qui la cree.
> >
> > Elle a donc ete creer dans le contexte utilise par 'sp_executesql'.
> >
> > (Essaie le meme code mais sans le EXEC.. (voir ci-dessous), et ca
devrait
> > fonctionner)
> >
> >
> > CREATE TABLE #TableTemp
> > (
> > Col1 nvarchar(50) NULL
> > )
> > SELECT * FROM #TableTemp
> >
> > DROP TABLE #TableTemp
> >
> > Donc, le plus simple ici est de creer une table ##Tabletemp qui est
> > temporaire, mais avec le server comme scope.
> >
> > Chris
> >
> > --
> > ______________________________________________
> > It's still better that if it would have been worst, isn't it ?
> > C'est toujours mieux que si c'etait pire !
> > "FAUCHILLE Stéphan" wrote in message
> > news:%
> >> Bonjour,
> >>
> >> J'ai le code suivant dans une procédure stockée
> >>
> >> DECLARE @LngStr nvarchar(4000)
> >>
> >> SET @LngStr = 'CREATE TABLE #TableTemp (Col1 nvarchar(50) NULL)'
> >>
> >> EXEC sp_executesql @LngStr
> >>
> >> SELECT * FROM #TableTemp
> >>
> >> DROP TABLE #TableTemp
> >>
> >> Mais cela ne fonctionne pas, n'est-il pas possible de créer une
> >> table
> >> temporaire de cette manière??
> >>
> >> Quand je supprime le "#" cela fonctionne.
> >>
> >> Merci pour vos réponse
> >>
> >>
> >
> >
>
>