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 :

Pourquoi ALTER DATABASE n'est pas autorisée dans une transaction multi-instruction ?


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Pourquoi ALTER DATABASE n'est pas autorisée dans une transaction multi-instruction ?
    Bonjour,
    Je développe une application en c# qui doit faire des traitements INSERT, UPDATE, DELETE dans plusieurs base de données. Je travaille en SQL 2000 et SQL 2005. J'ai besoin de modifier certaines options dans les bases de données que je traite comme 'ARITHABORT' que je dois modifier à ON. Mais lorsque j'exécute ma procédure stockée j'ai le message suivant: L'instruction ALTER DATABASE n'est pas autorisée dans une transaction multi-instruction.

    Effectivement l'instruction ALTER DATABASE est dans une transaction mais n'y a t'il pas moyen de faire fonctionner cette instruction dans une transaction?

    Merci.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    C'est parfaitement normal. En effet la limite des transactions est la base elle même puisque c'est dans le journal de transaction propre à chaque base que sont enregistrées les transactions. On ne peut donc pas enregistrer une transaction qui porte sur la structure de la base elle même.

    Cependant vous devriez vous poser la question de l'intérêt de faire comme vous le faites. J'ai l'impression que votre fonctionnel est particulièrement archaïque !

    Si vous nous disiez ce que vous voulez faire exactement entre vos deux bases et pourquoi vous modifiez ce paramètre ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Je dois modifier le paramètre ARITHABORT à ON sinon j'ai une erreur lorsque j'effectue mes INSERT, UPDATE ou DELETE :

    INSERT a échoué car les options SET suivantes comportent des paramètres incorrects 'ARITHABORT'.

    Bon ça j'ai trouvé pourquoi:

    If SET ARITHABORT is OFF, CREATE, UPDATE, INSERT, and DELETE statements on tables with indexes on computed columns or indexed views will fail.

    J'utilise les transactions dans mon application afin de faire un rollback si une erreur s'est produite par exemple une contrainte d'intégrité non respectée...

  4. #4
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    Ce n'est pas la peine de modifier la base, vous pouvez fixer les propriétés de la connexion.

    @+

Discussions similaires

  1. [RegEx] Remplacement d'une balise qui n'est pas imbriquée dans une autre
    Par w3ar3dus1 dans le forum Langage
    Réponses: 0
    Dernier message: 30/05/2011, 11h43
  2. la balise "h5" n'est pas autorisée dans "a"
    Par Mister Paul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 16/01/2011, 19h02
  3. [XL-2003] RechercheV n'est pas exprimée dans une boucle
    Par comme de bien entendu dans le forum Excel
    Réponses: 2
    Dernier message: 05/05/2010, 10h37
  4. [Smarty] Pourquoi le php n'est pas recommandé dans les templates ?
    Par SlymDesign dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/10/2007, 11h21
  5. Réponses: 26
    Dernier message: 05/02/2007, 16h57

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