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 :

EXEC et procédures stockées vers une autre base


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 159
    Points : 486
    Points
    486
    Par défaut EXEC et procédures stockées vers une autre base
    Bonjour à tous

    J'essaye d'exécuter, depuis une procédure stockée, une autre procédure se trouvant sur une autre base. J'ai donc ca :
    EXEC [MonAutreBase].[dbo].[MaProcALancer]
    Voila le souci : en fait, la base de donnée pourra être renommée (en fonction des environnements) et je dois utiliser une variable globale pour stocker "[MonAutreBase]".

    Comment pourrais-je m'y prendre?

    D'avance merci!

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous devez pour cela utiliser un requête SQL dynamique.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE PROCEDURE Ps_Execute_MaProc
    	@_maBD SYSNAME,
    	@param1 INT,
    	@param2 VARCHAR(20)
    AS
    BEGIN
    	DECLARE @SQL NVARCHAR(1024)
    	SET @SQL = 'EXEC ' + @_maBD + ' ' +
    				CAST (@param1 AS VARCHAR) + ', ' +
    				@param2
     
    	--PRINT (@SQL)
    	EXEC master.dbo.sp_executeSQL @SQL
    	-- EXEC (@SQL)
    END
    Vous pouvez utiliser EXEC mais les plans ne sont pas conservés.
    L'avantage de master.dbo.sp_executeSQL est que les plans sont conservés et que vous pouvez reprendre des valeurs en OUTPUT de la procédure

    @++

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 159
    Points : 486
    Points
    486
    Par défaut
    C'est exactement ce que je cherchais, merci bcp!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/02/2007, 14h30
  2. Réponses: 4
    Dernier message: 25/01/2007, 13h38
  3. Export d'une table vers une autre base access
    Par VBBBA dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 16h23
  4. Réponses: 5
    Dernier message: 04/07/2006, 11h29
  5. copier une table vers une autre base de données
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2005, 14h20

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