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 :

Sybase -> SQL Server TRIGGER et ROLLBACK


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Sybase -> SQL Server TRIGGER et ROLLBACK
    Bonjour à vous jeunes gens!

    Je suis en train de migrer des procédures stockées et des trigger de sybase vers SQL Server. Je tombe sur un problème qu'est celui-ci:
    en sybase, j'ai des trigger (pour l'euro) du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TRIGGER TOTO ON TABLE1 FOR UPDATE
    ...
    IF ..
    BEGIN
    ROLLBACK
    ...
    Seulement dans mon appilcation (en PowerBuilder) j'ai une erreur d'execution suite à la migration vers SQL Server : "The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION".

    J'avais déjà eu cette erreur avec des COMMIT dans des procédures stockées que j'avais facilement résolu en ajoutant un BEGIN TRANSACTION.

    Seulement voilà, dans un TRIGGER, comment faire un begin transaction?? Car il me semble que le ROLLBACK du trigger annule l'action du trigger (un update dans cet exemple). Donc faut-il que je recherche dans toutes mes procs stockée (1400) lesquelles utilisent ces trigger et mettre avant les UPDATE un BEGIN TRANSACTION ou existe t il une autre solution moins "bidouille"??

    Merci pour vos réponses.

    Vince.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Le BEGIN est un début de bloc, dont la terminaison est un END.

    Pour pouvoir faire un ROLLBACK, il vous faut au préalable un BEGIN TRAN... ou être en mode non-chaîné sous Sybase (BEGIN TRAN implicite).

    Mettez par exemple un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set implicit_transactions on
    dans votre code MS-SQL
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    A ben ça me semble pas mal ça!
    Par contre,le "set implicit_transactions on" se mettra sur mes procs stockées qui utilisent les triggers ou directement dans le trigger?
    Faut-il que je mette "set implicit_transactions off" en fin de trigger (ou fin de proc suivant le réponse de la question juste au dessus)?

Discussions similaires

  1. SQL SERVER : Triggers
    Par forsay1 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/01/2007, 17h20
  2. SQL2K : Sybase vers SQL Server : pb Collation
    Par quenec dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/04/2006, 12h46
  3. SQL SERVER Trigger et executable
    Par elkamy dans le forum Développement
    Réponses: 1
    Dernier message: 10/12/2005, 13h02
  4. Migration Sybase Anywhere -> SQL Server 2005 Express
    Par bubi dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/10/2005, 15h23
  5. Insertion dans table SQL server (Trigger) Aidz moi SVP????
    Par pop bob dans le forum Développement
    Réponses: 2
    Dernier message: 30/07/2005, 23h55

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