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 :

Utiliser Use avec à partir d'un paramètre


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Utiliser Use avec à partir d'un paramètre
    J'ai une procédure stockée qui reçoit en paramètre le nom d'une base.
    Je voudrais pouvoir faire un Use de cette base en utilisant le paramètre que je reçois

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ALTER PROCEDURE [dbo].[xxx]
     @PC_Base      VarChar(50)='',
     @PC_Procedure VarChar(50)=''
    AS
     
    Begin
     
    Use @PC_Base
    Le but est de copier une procédure stockée de la base sur laquelle je me trouve vers une autre base.

    Est-possible ?

  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 : 43
    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,

    C'est un peu compliqué, mais ça a le mérite de fonctionner :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    ALTER PROCEDURE Ps_copie_Ps
    	@PC_Base SYSNAME,
    	@PC_procedure SYSNAME
    AS
    BEGIN
    	IF NOT EXISTS
    	(
    		SELECT *
    		FROM sys.procedures
    		WHERE name = @PC_procedure
    	)
    	BEGIN
    		RAISERROR('La procédure stockée %s n''existe pas !', 16, 1, @PC_procedure)
    		RETURN
    	END
     
    	-- Récupère le code de la procédure stockée
    	DECLARE @code VARCHAR(MAX)
    	SELECT @code = definition
    	FROM sys.sql_modules AS M
    	WHERE object_id = OBJECT_ID(@PC_procedure)
     
    	DECLARE @sql VARCHAR(MAX)
    	SET @sql = 'EXEC ' + @PC_Base + '.dbo.sp_executeSQL @statement = N''' + @code + ''''
     
    	--PRINT @sql
    	EXEC (@sql) 
    END
    @++

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2011, 14h12
  2. Réponses: 5
    Dernier message: 14/12/2010, 16h27
  3. Réponses: 1
    Dernier message: 30/06/2010, 10h56
  4. Réponses: 1
    Dernier message: 28/03/2009, 17h28
  5. Réponses: 6
    Dernier message: 24/02/2005, 09h44

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