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

Langage SQL Discussion :

SELECT INTO d'une base vers une autre


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut SELECT INTO d'une base vers une autre
    Bonjour à tous,

    Je me demandais si les requêtes SELECT INTO pouvais marcher dans tous les sens et avec tous les types de bdd. Je m'explique :

    Pour copier une table d'ACCESS vers SQL Server j'utilise la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * INTO [TableDestination] FROM [TableSource] IN '' [ODBC;DSN=NomDSN;UID=LoginSQL;PWD=PasswordSQL;Server=NomDuServeur;Database=NomDeLaBDD;]
    J'exécute cette requête avec ADO à partir d'une base ACCESS.

    Je tente sans réussite de faire la même chose mais en exécutant la requête avec ADO à partir d'une base SQL Server mais je ne trouve pas la bonne syntaxe.

    Si quelqu'un à une idée, je trouve ces requêtes très pratiques car la table est créée automatiquement.

    Merci
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Syntaxe SQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into tabledestination
    select * from tablesource
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    La syntaxe SELECT ... INTO [Destination] FROM [Source] existe sous SQL Server, mais pas la partie suivante de votre requete, à savoir le IN [ServeurDest].

    Que cherchez vous à faire exactement : importer des tables Access vers SQL Server depuis SQL server, ou exporter des tables SQL Server vers Access depuis SQL Server ?

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Syntaxe SQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into tabledestination
    select * from tablesource
    Désolé je me suis peut-être mal exprimé mais cette requête permet de créer une table dans une base à partir d'une table qui est dans la MÊME base.

    Ma question est comment créer une table dans une base SQL Server à partir d'une base access mais en exécutant la requête côté SQL Server et non côté Access
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Alors vous avez plusieurs façon de faire.

    si vous devez faire ça régulièrement (serveur de dev par exemple), vous pouvez créer, sur votre serveur SQL Server, un serveur lié vers access.
    Ensuite, vous pourrez faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    INTO LaTable
    FROM MonServeurAccess.LaBase.LeSchéma.LaTable
    (à adapter peut-être, je ne sais pas comment Access gère les notions de base et de schéma...)

    Sinon, vous pouvez utiliser directement OPENROWSET ou OPENDATASOURCE avec quelque chose dans ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    INTO LaTable
    FROM OPENROWSET(...)
    Ce ne sont que des pistes a adapter....

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table destination
    as
    select *
    from openrowset(...);
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    La syntaxe SELECT ... INTO [Destination] FROM [Source] existe sous SQL Server, mais pas la partie suivante de votre requete, à savoir le IN [ServeurDest].

    Que cherchez vous à faire exactement : importer des tables Access vers SQL Server depuis SQL server, ou exporter des tables SQL Server vers Access depuis SQL Server ?

    Sur la page http://office.microsoft.com/fr-fr/ac...in=HP001032266

    On peut voir la syntaxe de ce type de requête :

    Pour identifier une table de destination :

    [SELECT | INSERT] INTO destination IN
    {chemin | ["chemin" "type"] | ["" [type; DATABASE = chemin]]}

    Pour identifier une table source :

    FROM expressiontable IN
    {chemin | ["chemin" "type"] | ["" [type; DATABASE = chemin]]}

    J'arrive à utiliser cette requête avec le moteur Jet pour créer une copie d'une table SQL Server vers Access, je me demandais si on pouvait faire l'inverse, c'est à dire avoir la même requête qui crée aussi une copie d'une table SQL Server vers Access mais en exécutant cette requête à partir de SQL Server.

    Pour être encore plus clair, mon programme gère deux types de BDD, Access et SQL Server. J'utilise ADO pour la connexion, Jet comme moteur Access et ODBC pour les base SQl Server.

    Je veux copier une table SQLServer vers Access, j'exécute sur ma connexion ADO Access la requête que j'ai mis plus haut. Ceci marche parfaitement vu que le moteur JET reconnait ce type de requête.

    Je veux maintenant faire la même chose mais en exécutant la requête sur ma connexion ADO ODBC SQL Server si par exemple ma connexion ADO Access est fermée, cela m'évite de l'ouvrir juste pour une requête.
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par alexxxx69 Voir le message
    Désolé
    Ma question est comment créer une table dans une base SQL Server à partir d'une base access mais en exécutant la requête côté SQL Server
    ...
    Citation Envoyé par alexxxx69 Voir le message
    requête qui crée aussi une copie d'une table SQL Server vers Access mais en exécutant cette requête à partir de SQL Server.


    J'ai bien compris que vous vouliez exécuter la commande sur SQL Server, mais quelle est la source et quelle est la cible ?

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    ...




    J'ai bien compris que vous vouliez exécuter la commande sur SQL Server, mais quelle est la source et quelle est la cible ?
    La cible et la source sont les mêmes dans les deux cas à savoir la base ACCESS en cible et la base SQL Server en source, seule l'exécution de la requête diffère.
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  10. #10
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Donc depuis SQL Server, créer une table dans Access ?
    On ne jouit bien que de ce qu’on partage.

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    oui tout à fait, je me suis un peu embrouillé dans les 1er posts
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

Discussions similaires

  1. Dupliquer une requete d une base vers une autre
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/07/2010, 13h09
  2. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 19h27
  3. Copier une requête d'une base vers une autre
    Par david71 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/06/2008, 09h36
  4. Créer une vue dans une base vers une autre base ?
    Par guidav dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/02/2008, 15h43
  5. export d'une table d'une base vers une autre
    Par VBBBA dans le forum Access
    Réponses: 2
    Dernier message: 04/09/2006, 17h47

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