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 :

Atomicité d'ne procédure stockée


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Atomicité d'une procédure stockée
    Salut,

    J'ai une procédure stockée écrite sur sql server dans laquelle:
    1-Je créée une view, si la view existe je la drop.
    2- J'alimente ma view avec une openquery qui va lire des données
    sur oracle. Cette open query s'exécute avec les paramètres de ma procédure stockée.
    3-Je continue mon traitement.

    Question: comment est assuré l'atomicité de mon code: qu'est ce qui m'assure qu'un autre processus ne va modifier ma view (en exécutant 1 et 2 avec d'autres paramètres) alors que mon processus est en train d'exécuter l'étape 3.

    Merci de votre aide

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Bloc atomic avec sp_getapplock
    Salut,

    Mes investigations sur la question que j'ai posée m'ont conduit au résultat suivant: Si je veux que mes étapes 1, 2, 3 s'exécutent de manière atomic (comme un synchronize en Java), j'utilise le getapplock .

    …Ma procédure
    …..
    ..
    BEGIN TRANSACTION;
    DECLARE @result int
    EXEC @result = sp_getapplock @Resource = 'TestRC_VIEW',
    @LockMode = 'Shared';
    IF @result = -3 /* DeadLock*/
    BEGIN
    ROLLBACK TRANSACTION;
    END

    --- Etape 1
    ----Etape 2
    ----Etape 3


    IF @result <> -3
    BEGIN
    EXEC @result = sp_releaseapplock @Resource = 'TestRC_VIEW';
    COMMIT TRANSACTION;
    END;

    COMMIT TRANSACTION;


    J'ai toutefois un effet de bord que je ne comprends pas. Si pendant l'exécution de ma procédure j'essayer de browser les vues avec sql server 2005, les vues sont freezées tant que ma procédure n'a pas terminé.
    Et si je mets le LockMode a Update alors c'est quasi tout le browser de sql server qui freeze pendant l'exécution de ma procédure.

    Any feedback?

    Merci

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  3. [Pervasive SQL ] procédure stockée
    Par magellan dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 25/10/2002, 13h17
  4. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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