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

MS SQL Server Discussion :

portée des tables #


Sujet :

MS SQL Server

  1. #1
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut portée des tables #
    bonjour

    je voudrais une confirmation

    j'ai un trigger (T-SQL) qui créé une table temporaire avec un seul # (via select into)
    ce trigger appelle une procédure stockée CLR (enfin ca doit etre similaire d'une procédure stockée T-SQL)

    (déjà à priori la procédure stockée a accès à cette table # et la table # est détruite à la fin de l'éxécution du trigger)

    y a t il une instance de cette table # pour chaque instance du trigger ?
    enfin je veux dire par là si le trigger est executé plusieurs fois simultanément par le meme utilisateur, suite à plusieurs requetes, est-ce une seule table # qui est utilisée, ou plusieurs (une créé par chaque instance du trigger)


    question subsidiaire, y a t il moyen d'executer cette procédure stockée de manière asynchrone pour sortir tout de suite du trigger (pour que la main soit rendu à l'appelant avec sa requete d'update)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Les tables # sont des tables temporaires locales. Elles sont accessibles que dans le contexte de la procédure stockée ou du trigger qui la crée.
    Pour répondre à ta seconde interrogation, à chaque fois que ton trigger est appelé une nouvelle table temporaire sera créée. Toutes ces tables sont totalement différentes car elles ne portent pas le même nom dans le système.

    Je m'explique, il y a une relation effectuée entre le nom réel et le nom logique de la table en fonction de l'objet qui la créé. Sachant que chaque exécution est unique dans SQL Server, les tables temporaires locales seront toutes différentes.

    Si tu as d'autres questions, n'hésites pas.

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    merci bien, ca me rassure

    je l'ai su en plus à une époque que les tables # avaient en fait un nom de 128 ou 256 caractères en interne pour les différencier ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. remplir des tables a partir de fichiers TXT
    Par jeremie dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/03/2004, 14h50
  2. [Volume des tables et performance]
    Par kase74 dans le forum InterBase
    Réponses: 9
    Dernier message: 09/03/2004, 14h14
  3. Afficher noms des tables d'une base
    Par jeff37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/01/2004, 16h00
  4. Liste des tables d'une bases de données spécifique
    Par faridos23 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/08/2003, 22h20
  5. noms des tables d'une base
    Par molto dans le forum SQL
    Réponses: 2
    Dernier message: 17/03/2003, 22h14

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