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 :

[MSSQL-TSQL] Procédure stockée dans une base avec Select sur données dans une autre base ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut [MSSQL-TSQL] Procédure stockée dans une base avec Select sur données dans une autre base ?
    Bonjour,

    Je recherche actuellement à créer une procédure stockée dans une base "SandBox".

    Je souhaite avec cette procédure sélectionner des données dans une base "Toto".

    Mon objectif est de stocké un jeu de procédure stockée en les dissociant de la base sur laquelle elle récupère les données.

    est-ce possible?

    ou placer le uses dans la procédure stockée?

    cordialement.

  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
    Par défaut
    Bonjour,

    Si les deux bases de données sont hébergées par la même instance SQL Server, il vous suffit de préfixer le nom de vos tables par le nom du schéma auquel elles appartiennent et par la base de données également :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO dbo.uneTableDe_SandBox
    (
    	colonnesDe_uneTableDe_SandBox
    )
    SELECT	uneTableDe_uneTableDe_Toto
    FROM	Toto.dbo.uneTableDe_Toto
    Si en revanche vous deux bases de données ne sont pas dans la même instance SQL Server, il vous faut créer un serveur lié.
    Vous pourrez alors utiliser le squelette de requête ci-dessus en préfixant les noms des bases par le nom de l'instance ou du serveur lié.

    Dans quelle "configuration" êtes-vous ?

    @++

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    Bonjour,

    Les deux bases de données sont sur le même SQL server, si cela correspond à ce que tu entends par instance SQL Server.

    Par contre je n'ai pas bien compris ta syntaxe pour interagir entre les 2 bases de données.

    Est-ce que les underscores font références au nom long?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ALTER PROCEDURE [dbo].[PS_Test_Select_Donnee_Kelio]
     
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     
    	Select  *
    	FROM open_db_test.dbo.DEMANDE
    	WHERE open_db_test.dbo.ETAT_='3'
     
    	Order by open_db_test.dbo.demande_ ASC
    END
    Je viens de refaire un test. Ici la base dans laquelle je stocke ma procédure stockée est la base sandbox. La base contenant les tables desquels je souhaite extraire des données est open_db_test.

    Par contre la j'obtient l'erreur suivante :

    Msg*4104, Niveau*16, État*1, Procédure*PS_Test_Select_Donnee_Kelio, Ligne*14
    L'identificateur en plusieurs parties "open_db_test.dbo.ETAT_" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Procédure*PS_Test_Select_Donnee_Kelio, Ligne*14
    L'identificateur en plusieurs parties "open_db_test.dbo.demande_" ne peut pas être lié.
    Je vais faire une recherche la dessus

    Merci pour ta réponse

    ++

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/10/2013, 12h25
  2. Réponses: 2
    Dernier message: 21/12/2012, 13h14
  3. changer des données d'une table avec select.
    Par PHPkoala dans le forum Développement
    Réponses: 2
    Dernier message: 23/03/2010, 16h07
  4. Procédures stockées SQL Server compatibles avec MySQL ?
    Par Nen'S dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/01/2006, 19h18
  5. Réponses: 3
    Dernier message: 09/11/2004, 14h43

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