OVH Cloud OVH Cloud

Tables temporaires

6 réponses
Avatar
Farid LAOUFI
Bonjour,
j'ai une procédure stockée pouvant être éxécutée simultanément par plusieurs
utilisateurs, et qui a besion en interne de créer une table temporaire.
Est-ce que SQL Server propose un mécanisme permettant de générer des noms de
tables temporaires uniques, ou bien je devrai créer une fonction utilisateur
ou une procédure stockée qui s'en chargera ?

Merci d'avance pour vos réponses.

6 réponses

Avatar
bruno reiter [MVP]
s'il s'agit d'une table temporaire local (un seul #), ça ne pose pas de
problème.

br

"Farid LAOUFI" wrote in message
news:3f8d1798$0$28908$
Bonjour,
j'ai une procédure stockée pouvant être éxécutée simultanément par plusieurs
utilisateurs, et qui a besion en interne de créer une table temporaire.
Est-ce que SQL Server propose un mécanisme permettant de générer des noms de
tables temporaires uniques, ou bien je devrai créer une fonction utilisateur
ou une procédure stockée qui s'en chargera ?

Merci d'avance pour vos réponses.




Avatar
Farid LAOUFI
Ca veut dire que SQL Server génère lui-même un nom unique à toutes les
tables préfixées par un # ?

"bruno reiter [MVP]" a écrit dans le message
de news:
s'il s'agit d'une table temporaire local (un seul #), ça ne pose pas de
problème.

br

"Farid LAOUFI" wrote in message
news:3f8d1798$0$28908$
> Bonjour,
> j'ai une procédure stockée pouvant être éxécutée simultanément par


plusieurs
> utilisateurs, et qui a besion en interne de créer une table temporaire.
> Est-ce que SQL Server propose un mécanisme permettant de générer des


noms de
> tables temporaires uniques, ou bien je devrai créer une fonction


utilisateur
> ou une procédure stockée qui s'en chargera ?
>
> Merci d'avance pour vos réponses.
>
>




Avatar
Laurent Moreau
Pour les tables temporaires, le nom est commun a la connexion.

une connexion fait un #MaTable
une autre connxion fait un autre #MaTable, ça ne sera pas la meme table


Si le nom est ##MaTable (2dièses) la table est commune a toute les
connexions

Laurent.




"Farid LAOUFI" wrote in message
news:3f8d3d12$0$28898$
Ca veut dire que SQL Server génère lui-même un nom unique à toutes les
tables préfixées par un # ?

"bruno reiter [MVP]" a écrit dans le message
de news:
> s'il s'agit d'une table temporaire local (un seul #), ça ne pose pas de
> problème.
>
> br
>
> "Farid LAOUFI" wrote in message
> news:3f8d1798$0$28908$
> > Bonjour,
> > j'ai une procédure stockée pouvant être éxécutée simultanément par
plusieurs
> > utilisateurs, et qui a besion en interne de créer une table


temporaire.
> > Est-ce que SQL Server propose un mécanisme permettant de générer des
noms de
> > tables temporaires uniques, ou bien je devrai créer une fonction
utilisateur
> > ou une procédure stockée qui s'en chargera ?
> >
> > Merci d'avance pour vos réponses.
> >
> >
>
>




Avatar
bruno reiter [MVP]
effectivement, il suffit d'aller regarder dans la base tempdb, tu peux aussi
vérifier l'existance avec ça :

create table #t1(c1 int null)


if (object_id(N'tempdb..#t1') is not null)
begin
print 'exists and dropped #t1'
drop table #t1
end
else
begin
print 'does not exists'
end

attention, il pourrait exister une PROC #t1


br


br

"Laurent Moreau" wrote in message
news:bmjeoq$6ef$
Pour les tables temporaires, le nom est commun a la connexion.

une connexion fait un #MaTable
une autre connxion fait un autre #MaTable, ça ne sera pas la meme table


Si le nom est ##MaTable (2dièses) la table est commune a toute les
connexions

Laurent.




"Farid LAOUFI" wrote in message
news:3f8d3d12$0$28898$
> Ca veut dire que SQL Server génère lui-même un nom unique à toutes les
> tables préfixées par un # ?
>
> "bruno reiter [MVP]" a écrit dans le message
> de news:
> > s'il s'agit d'une table temporaire local (un seul #), ça ne pose pas de
> > problème.
> >
> > br
> >
> > "Farid LAOUFI" wrote in message
> > news:3f8d1798$0$28908$
> > > Bonjour,
> > > j'ai une procédure stockée pouvant être éxécutée simultanément par
> plusieurs
> > > utilisateurs, et qui a besion en interne de créer une table
temporaire.
> > > Est-ce que SQL Server propose un mécanisme permettant de générer des
> noms de
> > > tables temporaires uniques, ou bien je devrai créer une fonction
> utilisateur
> > > ou une procédure stockée qui s'en chargera ?
> > >
> > > Merci d'avance pour vos réponses.
> > >
> > >
> >
> >
>
>




Avatar
Patrice Scribe
En complément, sur SQL Server 2000 et selon le volume, tu peux également
créer des variables TABLE ...

Patrice

--

"Farid LAOUFI" a écrit dans le message de
news:3f8d1798$0$28908$
Bonjour,
j'ai une procédure stockée pouvant être éxécutée simultanément par


plusieurs
utilisateurs, et qui a besion en interne de créer une table temporaire.
Est-ce que SQL Server propose un mécanisme permettant de générer des noms


de
tables temporaires uniques, ou bien je devrai créer une fonction


utilisateur
ou une procédure stockée qui s'en chargera ?

Merci d'avance pour vos réponses.




Avatar
gfourrat
Pour t'en convaincre :

Ouvre 3 fenêtres Query Analyzer sur le même serveur (de test, hein =) ).
Sur les 2 premières : create table #toto(n integer)
Sur la 3ème : select name from tempdb..sysobjects where xtype='u'


Guillaume Fourrat
Microsoft France
--------------------
From: "Farid LAOUFI"
Newsgroups: microsoft.public.fr.sqlserver
References: <3f8d1798$0$28908$



Subject: Re: Tables temporaires
Date: Wed, 15 Oct 2003 14:27:24 +0200

Ca veut dire que SQL Server génère lui-même un nom unique à toutes les
tables préfixées par un # ?