IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Visibilité d'une table temporaire


Sujet :

Développement SQL Server

  1. #1
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut Visibilité d'une table temporaire
    Bonjour,

    Dans SQL 2000, si je crée une table temporaire avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE #MaTable (Champ1 varchar(50), Champ2 varchar(50))
    cette table n'est visible que par la connexion en cours. Bien.

    Si je créée plusieurs fois cette table à partir de différentes connexions
    (en répétant l'instruction dans différentes fenêtres dans l'analyseur de requête par exemple) ;
    je vois la liste des tables créées avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NAME FROM TEMPDB..SYSOBJECTS where NAME like '#MaTable%'
    Comme prévu dans la doc, chaque table est bien nommée "#MaTable___ ... __" + un identificateur.

    Ma question est : Comment fait SQL Server pour attribuer :
    "#MaTable___ ... __00000000B444" à la connexion SPID = 67
    "#MaTable___ ... __00000000B457" à la connexion SPID = 83

    Je suppose que l'information doit être écrite quelque part ; mais où ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Ma question est : Comment fait SQL Server pour attribuer :
    "#MaTable___ ... __00000000B444" à la connexion SPID = 67
    "#MaTable___ ... __00000000B457" à la connexion SPID = 83
    Je ne pense pas que le nom attribué à une table temporaire soit en relation avec le SPID, car dans une session on peut créer plusieurs tables temporaires.

    Pourquoi avez-vous besoin de tables temporaires ?

    @++

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    La table temporaire "#MaTable" est créée par une procédure stockée "MaProc" puis utilisée dans un trigger.
    La procédure "MaProc" est susceptible d'être déclenchée par d'autres utilisateurs au même moment.
    J'ai donc plusieurs fois #MaTable__... dans TEMPDB..SYSOBJECTS

    Or le trigger doit vérifier que la table temp a bien été créée par sa propre connexion car il va faire un select dessus.

    Je cherche donc un moyen de déterminer si une des tables temp appartient bien à la connexion en cours.
    Naturellement, s'il y a un autre moyen que de regarder dans TEMPDB..SYSOBJECTS
    pour vérifier l'existence de la table temp, je suis preneur ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Résultat d'une SP dans une table temporaire
    Par alfadev dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/07/2006, 13h59
  2. [ASE 12.5.3][TSQL] - Creation d'une table temporaire en dynamique
    Par CVince dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 16/06/2006, 15h30
  3. Récupérer le résultat d'une PS dans une table temporaire ?
    Par maitrebn dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/02/2006, 09h24
  4. Réponses: 12
    Dernier message: 21/10/2005, 14h35
  5. [débutant] Résultat d'un exec dans une table temporaire
    Par amelie15 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/08/2005, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo