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 :

Pouvoir effectuer une modification sur plusieurs base de données


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 5
    Points
    5
    Par défaut Pouvoir effectuer une modification sur plusieurs base de données
    Bonjour,
    Tout est pratiquement dit dans le titre.
    J'ai besoin d'effectuer plusieurs modifications dans plusieurs bases de données.
    J'utilisais une méthode assez bête où je faisais du copier coller du genre
    USE BD1
    instructions
    USE BD2
    instructions
    USE BD3
    instructions
    Il est à noter que c'est toujours les mêmes instructions !
    Mais en lisant un peu me suis rendu compte qu'il y avait un langage de programmation.
    Mais les trucs que j'ai essayé sont restés vains ....
    Quelqu'un a une idée ?

    Merci et à plus,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bonjour,

    Mais en lisant un peu me suis rendu compte qu'il y avait un langage de programmation.
    Oui, le transact-sql

    Mais les trucs que j'ai essayé sont restés vains ....
    Mais encore ... ?

    Est-ce que vous pouvez poster tous les détails (code sql, erreurs rencontrées etc.)
    merci

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 5
    Points
    5
    Par défaut Le code
    Bonjour,
    Le code testé:

    SET NOCOUNT ON
    DECLARE @nomBD AS VARCHAR(30)
    SET @nomBD = '#BDS'

    if exists (
    select * from tempdb.dbo.sysobjects o
    where o.xtype in ('U')

    and o.id = object_id(N'tempdb.. #BDS' )
    )
    DROP TABLE #tempTable;

    --creation qui contiendra les noms des BD
    CREATE TABLE #BDS (nom varchar(30))
    INSERT INTO #BDS VALUES ('BD1')
    INSERT INTO #BDS VALUES ('BD2')

    --declaration du cusrsor de la table BD
    DECLARE curseurSurBDS CURSOR
    FOR
    SELECT nom FROM #BDS

    OPEN curseurSurBDS

    --lecture de curseurSurBDS
    FETCH curseurSurBDS INTO @nomBD

    WHILE @@fetch_Status = 0
    BEGIN
    print '******************' + @nomBD
    USE @nomBD
    --instructions ...


    FETCH curseurSurBDS INTO @nomBD
    END

    CLOSE curseurSurBDS

    DEALLOCATE curseurSurBDS


    DROP table #BDS

    L'erreur est :
    Server: Msg 170, Level 15, State 1, Line 31
    Line 31: Incorrect syntax near '@nomBD'.


    Merci et à plus

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Pour pouvoir se positionner dans une base
    de manière dynamique et y lancer des commandes, il faut utiliser la commande EXECUTE. Il n'est pas possible de faire USE @param directement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE ('USE ['+@nomBD+'] instructions')

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 5
    Points
    5
    Par défaut Merci
    beaucoup !

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

Discussions similaires

  1. [MySQL] Répartition d'une table sur plusieurs base de données
    Par jerome572 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/05/2011, 17h58
  2. Effectuer une tache sur plusieures Feuilles
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/07/2008, 11h14
  3. Une requete sur plusieurs base
    Par MaitrePylos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 06/10/2006, 16h11
  4. Requête sur plusieurs bases de données
    Par Oluha dans le forum ASP
    Réponses: 8
    Dernier message: 14/10/2005, 14h57
  5. triggers sur plusieurs bases de données
    Par Shabata dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/05/2004, 10h02

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