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 :

Remplir une table dans une autre Instance et une autre base de données


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut Remplir une table dans une autre Instance et une autre base de données
    Bonjour,

    Voila tout ets dans le titre, je souhaite alimenté une table sur un serveur différent et donc sur une instance différente dans une base de données de nom différent.

    Actuellement, je rempli ma table en local... comment faire ?

    merci beaucoup

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Points : 357
    Points
    357
    Par défaut
    Regade du côté des Linked Server

    Tu ajoutes un serveur lié et tu deal avec ensuite...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Tu as deux possibilités:

    - Utiliser des serveurs liées en préfixant ta table de la manière suivante:
    nomServeur.nomBase.propriétaire.nomTable

    - Utiliser la fonction opendatasource().nomBase.propriétaire.nomTable

    Le serveur lié est recommandé si tu dois effectuer plusieurs opérations vers ton autres instances.
    Dans le cadre de connexion ponctuelle, tu peux utiliser la fonction opendatasource.

  4. #4
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    avant de lancer ta requête il faut que le serveur distant soit lié à ton serveur local, pour ce faire tu lance la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_addlinkedserver [nomServeurDistant]
    après :

    tu peux faire ce que tu veux à partir de ton serveur local du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    SELECT *
    FROM nomServeurDistant.nomBaseDonnees.dbo.nomTable
    Bon courage

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    merci pour vos réponses, je suis en train de faire des tests mais cela ne marche pas :

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_addlinkedserver [SNS-TECHNET]
    mon serveur est SNS-TECHNET

    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO [SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports]
    Avec SNSTECHNET2005 qui est mon instance, mais cela me renvoie une erreur à la creation de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*15028, Niveau*16, État*1, Procédure*sp_MSaddserver_internal, Ligne*89
    Le serveur*'SNS-TECHNET' existe déjà.

  6. #6
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Citation Envoyé par dahu17
    merci pour vos réponses, je suis en train de faire des tests mais cela ne marche pas :

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_addlinkedserver [SNS-TECHNET]
    mon serveur est SNS-TECHNET

    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO [SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports]
    Avec SNSTECHNET2005 qui est mon instance, mais cela me renvoie une erreur à la creation de la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*15028, Niveau*16, État*1, Procédure*sp_MSaddserver_internal, Ligne*89
    Le serveur*'SNS-TECHNET' existe déjà.
    si tu as bien lu le message d'erreur tu comprendras qu'il te faudra juste d'enlever le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_addlinkedserver [SNS-TECHNET]
    car apparemnt tes deux serveurs sont déjà linkés.

    exécutes directement ta requête d'insertion.

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    question bete tes serveurs sont sur un même réseau?

  8. #8
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    oui quand même, mais je ne te jette pas la piere lol, tu as raison de poser la question. mais j'ai quand même une erreur lorsque j'essaye de passer des parametres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*208, Niveau*16, État*1, Procédure*SNSTechNet_Generer_mssp, Ligne*82
    Nom d'objet 'SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports' non valide.
    mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO [SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports] ( ProduitNumeroSerie, SiteNom, PersonneEmail, Report, ReportFrequency, ReportFirewall, ReportWeb, ReportIps, ReportContent)
    VALUES (@ProduitSN, @SiteNom, @Mail, @Report, @Frequencyid, @Firewallid, @Webid, @Ipsid, @Contentid)

  9. #9
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Certainement

  10. #10
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    Ok lol, merci pour les infos, je vais essayer de depatouiller tout ca

  11. #11
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    es-tu sur que tes tables ont bien pour propriétaire dbo
    SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports'
    tu peux faire sans dbo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SNSTECHNET2005.SNSTechNetWeb..SNSTechNet_MsspReports'

  12. #12
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    j'ai essayé une autre syntaxe et ca a l'air mieu, mais cela m'étone de ne pas devoir spécifier une authentification SQL...

    j'ai ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Le fournisseur OLE DB 'SQLNCLI' du serveur lié 'SNS-TECHNET' a retourné le message 'Délai d'attente de connexion expiré'.
    Le fournisseur OLE DB 'SQLNCLI' du serveur lié 'SNS-TECHNET' a retourné le message 'Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance.'.
    Msg*2, Niveau*16, État*1, Ligne*0
    Fournisseur de canaux nommés : Impossible d'ouvrir une connexion à SQL Server [2].

  13. #13
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Citation Envoyé par dahu17
    oui quand même, mais je ne te jette pas la piere lol, tu as raison de poser la question. mais j'ai quand même une erreur lorsque j'essaye de passer des parametres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*208, Niveau*16, État*1, Procédure*SNSTechNet_Generer_mssp, Ligne*82
    Nom d'objet 'SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports' non valide.
    mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO [SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports] ( ProduitNumeroSerie, SiteNom, PersonneEmail, Report, ReportFrequency, ReportFirewall, ReportWeb, ReportIps, ReportContent)
    VALUES (@ProduitSN, @SiteNom, @Mail, @Report, @Frequencyid, @Firewallid, @Webid, @Ipsid, @Contentid)

    essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     INSERT INTO SNSTECHNET2005.SNSTechNetWeb.dbo.SNSTechNet_MsspReports( ProduitNumeroSerie, SiteNom, PersonneEmail, Report, ReportFrequency, ReportFirewall, ReportWeb, ReportIps, ReportContent)
    VALUES (@ProduitSN, @SiteNom, @Mail, @Report, @Frequencyid, @Firewallid, @Webid, @Ipsid, @Contentid)
    tes paramètres sont bien typés?

  14. #14
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    EUhhh, je ne sais pas si mes parametres sont typés mais ce dont je suis sur c'est que c'est une erreur de communication !

    toujours la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Le fournisseur OLE DB 'SQLNCLI' du serveur lié 'SNS-TECHNET' a retourné le message 'Délai d'attente de connexion expiré'.
    Le fournisseur OLE DB 'SQLNCLI' du serveur lié 'SNS-TECHNET' a retourné le message 'Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance.'.
    Msg*2, Niveau*16, État*1, Ligne*0
    Fournisseur de canaux nommés : Impossible d'ouvrir une connexion à SQL Server [2].

  15. #15
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    j'avance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*18452, Niveau*14, État*1, Ligne*1
    Échec de l'ouverture de session de l'utilisateur*''. L'utilisateur n'est pas associé à une connexion SQL Server approuvée.
    comment on spécifie l'utilisateur ?

  16. #16
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    il te faut passer par un OPENQUERY

    http://msdn2.microsoft.com/en-US/lib...8(SQL.80).aspx

    car un insert direct passe par ton authentification windows et pas celle de SQL serveur donc si ton compte windows n'est pas autorisé sur le serveur lié

  17. #17
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    je suis sur que c'est pas loin mais je ne m'en sors pas et j'essaye plein de méthodes, mes yeux vont tomber je crois

  18. #18
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    ca marche pas avec openquery ?

    ou tu sais pas comment faire ?

  19. #19
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    Quand tu essaie un simple SELECT à partir de ton PC local mais sur la base du serveur distant est ce que ça marche?

    quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [ServeurDistant].DBO.taBase.taTable
    ça donne quoi?

  20. #20
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 241
    Points : 83
    Points
    83
    Par défaut
    cela ne marche pas car je fais la requete mais je n'ai pas les droits...

    j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Le fournisseur OLE DB 'SQLNCLI' du serveur lié 'SRV-LOGS' a retourné le message 'Échec de la liaison de communication'.
    Msg*10054, Niveau*16, État*1, Ligne*0
    Fournisseur TCP : Une connexion existante a dû être fermée par l'hôte distant.
    Msg*18452, Niveau*14, État*1, Ligne*0
    Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/02/2014, 09h06
  2. lire une table dans mysql a partir d'une certaine ligne
    Par persé dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/03/2013, 17h11
  3. Réponses: 3
    Dernier message: 04/06/2010, 23h57
  4. [MySQL] Insérer des données dans une table, mais ce n'est pas une table USER
    Par amerex dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/08/2008, 01h01
  5. Réponses: 1
    Dernier message: 22/07/2007, 18h42

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