Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
tu dois indiquer le nom de la base source et celui de la destinatrice :
cela donne quelque chose comme ça :
INSERT INTO Base1.dbo.table1 SELECT * FROM Base2.dbo.table1 table1
"Borroch" a écrit :
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
>
tu dois indiquer le nom de la base source et celui de la destinatrice :
cela donne quelque chose comme ça :
INSERT INTO Base1.dbo.table1 SELECT * FROM Base2.dbo.table1 table1
"Borroch" a écrit :
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
>
tu dois indiquer le nom de la base source et celui de la destinatrice :
cela donne quelque chose comme ça :
INSERT INTO Base1.dbo.table1 SELECT * FROM Base2.dbo.table1 table1
"Borroch" a écrit :
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
>
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
à partir de la norme : la plupart des commandes Access n'ont rien à voir
norme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
à partir de la norme : la plupart des commandes Access n'ont rien à voir
norme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
à partir de la norme : la plupart des commandes Access n'ont rien à voir
norme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:
> Bonjour
>
> J'ai 2 bases de données en SQL Server et je souhaite transférer des
> de l'une vers l'autre.
> Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
> n'arrive pas à le faire fonctionner.
> exemple :
> base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
> Mais le IN n'est pas reconnu.
>
> Comment puis-je faire
>
> Merci
>
>
Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL server.
Par contre lorsque je transpose dans mon code VB, la commande execute tombe
en erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.* FROM
base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" a écrit dans le message de news:Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQLà partir de la norme : la plupart des commandes Access n'ont rien à voir
avec lanorme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
donnéesde l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL server.
Par contre lorsque je transpose dans mon code VB, la commande execute tombe
en erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.* FROM
base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
43217BEE.3000304@club-internet.fr...
Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())
UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQL
à partir de la norme : la plupart des commandes Access n'ont rien à voir
avec la
norme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL server.
Par contre lorsque je transpose dans mon code VB, la commande execute tombe
en erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.* FROM
base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" a écrit dans le message de news:Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQLà partir de la norme : la plupart des commandes Access n'ont rien à voir
avec lanorme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
donnéesde l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
> Par contre lorsque je transpose dans mon code VB, la commande execute
> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" a écrit dans le message de
>
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
>>Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning, optimisation
>>********************* http://www.datasapiens.com ***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
> Par contre lorsque je transpose dans mon code VB, la commande execute
> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
> 43217BEE.3000304@club-internet.fr...
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
>>Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning, optimisation
>>********************* http://www.datasapiens.com ***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
> Par contre lorsque je transpose dans mon code VB, la commande execute
> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" a écrit dans le message de
>
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
>>Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning, optimisation
>>********************* http://www.datasapiens.com ***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" a écrit dans le message de news:
urFbh#Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
ODBC.En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.Par contre lorsque je transpose dans mon code VB, la commande execute
tombeen erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROMbase2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" a écrit dans le message de
news:Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *FROM Serveur1.Mabase2.User1.table1Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *FROM Serveur1.Mabase2..table1A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *FROM Mabase2..table1A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *FROM Mabase2..table1A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQLà partir de la norme : la plupart des commandes Access n'ont rien à voir
avec lanorme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
donnéesde l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
jen'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
urFbh#TtFHA.3236@TK2MSFTNGP14.phx.gbl...
Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
ODBC.
En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.
Par contre lorsque je transpose dans mon code VB, la commande execute
tombe
en erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROM
base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:
43217BEE.3000304@club-internet.fr...
Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *
FROM Serveur1.Mabase2.User1.table1
Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *
FROM Serveur1.Mabase2..table1
A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT
@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *
FROM Mabase2..table1
A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())
UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQL
à partir de la norme : la plupart des commandes Access n'ont rien à voir
avec la
norme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:
Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
données
de l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
je
n'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" a écrit dans le message de news:
urFbh#Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris par
ODBC.En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.Par contre lorsque je transpose dans mon code VB, la commande execute
tombeen erreur, ODBC call failed.
Ma requête est
base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROMbase2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
"Fred BROUARD" a écrit dans le message de
news:Bonjour,
IN <mabase> n'est pas du SQl, c'est du charabia Access.
En effet en SQL un nom d'objet doit en principe s'écrire :
<monServeur>.<Mabase>.<MonSchéma>.<Matable>
En conséquence interopérer entre deux bases se fait très simplement :
INSERT INTO Serveur1.Mabase1.User1.table1
SELECT *FROM Serveur1.Mabase2.User1.table1Vous pouvez éluder l'utilisateur par la notation suivante :
INSERT INTO Serveur1.Mabase1..table1
SELECT *FROM Serveur1.Mabase2..table1A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
Vous pouvez éluder le nom du serveur par la notation suivante :
INSERT INTO Mabase1..table1
SELECT *FROM Mabase2..table1A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT@@SERVERNAME)
Vous pouvez éluder le nom d'une des base par la notation suivante :
INSERT INTO table1
SELECT *FROM Mabase2..table1A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
DB_NAME())UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
aprendre SQLà partir de la norme : la plupart des commandes Access n'ont rien à voir
avec lanorme SQL alors que MS SQL Server est très normatif.
pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
aider !A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Borroch a écrit:Bonjour
J'ai 2 bases de données en SQL Server et je souhaite transférer des
donnéesde l'une vers l'autre.
Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
jen'arrive pas à le faire fonctionner.
exemple :
base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
Mais le IN n'est pas reconnu.
Comment puis-je faire
Merci
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" a écrit dans le message de
news:
urFbh#Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris
par
ODBC.En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.> Par contre lorsque je transpose dans mon code VB, la commande execute
tombe> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROM> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" a écrit dans le message de
news:>
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à
>>voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage
>>SQL
>>Le site sur le langage SQL et les SGBDR :
>>http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning,
>>optimisation
>>********************* http://www.datasapiens.com
>>***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
je>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:
urFbh#TtFHA.3236@TK2MSFTNGP14.phx.gbl...
Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris
par
ODBC.
En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.
> Par contre lorsque je transpose dans mon code VB, la commande execute
tombe
> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROM
> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:
> 43217BEE.3000304@club-internet.fr...
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT
>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à
>>voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage
>>SQL
>>Le site sur le langage SQL et les SGBDR :
>>http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning,
>>optimisation
>>********************* http://www.datasapiens.com
>>***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
je
>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Aucun changement.
Je précise que j'utilise DAO.
Que j'ouvre les bases en mode dbUseODBC
Set Wk = DBEngine.CreateWorkspace("Mon_Appli", "P001", "", dbUseODBC)
Set db1 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect1)
Set db2 = Wk.OpenDatabase("", dbDriverNoPrompt, False, Connect2)
"Fred BROUARD" a écrit dans le message de
news:
urFbh#Simplifiez :
INSERT INTO base1.dbo.table1
SELECT *
FROM base2.dbo.table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
ou :
INSERT INTO base1..table1
SELECT *
FROM base2..table1 T
WHERE T.champ1 = 'XX'
AND T.champ2 = 'ZZ'
AND T.champ3 = 'YY'
En particulier le "SELECT base2.dbo.table1.*" ne doit pas être compris
par
ODBC.En revanche avec un alias, T.* peut être mieux compris.
A +
Borroch a écrit:
> Merci, cela fonctionne très bien dans l'analyseur de requêtes de SQL
server.> Par contre lorsque je transpose dans mon code VB, la commande execute
tombe> en erreur, ODBC call failed.
> Ma requête est
> base1.execute "INSERT INTO base1.dbo.table1 SELECT base2.dbo.table1.*
FROM> base2.dbo.table1 WHERE base2.dbo.table1.champ1 = 'XX' AND
> base2.dbo.table1.champ2 = 'ZZ' AND base2.dbo.table1.champ3 = 'YY'"
>
>
>
> "Fred BROUARD" a écrit dans le message de
news:>
>
>>Bonjour,
>>
>>IN <mabase> n'est pas du SQl, c'est du charabia Access.
>>
>>En effet en SQL un nom d'objet doit en principe s'écrire :
>><monServeur>.<Mabase>.<MonSchéma>.<Matable>
>>
>>En conséquence interopérer entre deux bases se fait très simplement :
>>INSERT INTO Serveur1.Mabase1.User1.table1
>>SELECT *
>>FROM Serveur1.Mabase2.User1.table1
>>
>>Vous pouvez éluder l'utilisateur par la notation suivante :
>>INSERT INTO Serveur1.Mabase1..table1
>>SELECT *
>>FROM Serveur1.Mabase2..table1
>>A condition que vous soyez User1 (vérifiable par SELECT USER_NAME())
>>
>>Vous pouvez éluder le nom du serveur par la notation suivante :
>>INSERT INTO Mabase1..table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur le serveur Serveur1 (vérifiable par
SELECT>>@@SERVERNAME)
>>
>>Vous pouvez éluder le nom d'une des base par la notation suivante :
>>INSERT INTO table1
>>SELECT *
>>FROM Mabase2..table1
>>A condition que vous soyez sur la base Mabase1 (vérifiable par SELECT
>
> DB_NAME())
>
>>UN CONSEIL : si vous venez du monde Access, je vous conseille de ré
>
> aprendre SQL
>
>>à partir de la norme : la plupart des commandes Access n'ont rien à
>>voir
>
> avec la
>
>>norme SQL alors que MS SQL Server est très normatif.
>>pour cela mon site web, comme les bouquins que j'ai écrit peuvent vous
>
> aider !
>
>>A +
>>
>>--
>>Frédéric BROUARD, MVP SQL Server, expert bases de données et langage
>>SQL
>>Le site sur le langage SQL et les SGBDR :
>>http://sqlpro.developpez.com
>>Audit, conseil, expertise, formation, modélisation, tuning,
>>optimisation
>>********************* http://www.datasapiens.com
>>***********************
>>
>>Borroch a écrit:
>>
>>>Bonjour
>>>
>>>J'ai 2 bases de données en SQL Server et je souhaite transférer des
>
> données
>
>>>de l'une vers l'autre.
>>>Je faisais ça auparavant avec ACCESS en utilisant INSERT INTO mais là
je>>>n'arrive pas à le faire fonctionner.
>>>exemple :
>>>base1.execute "INSERT INTO table1 SELECT * FROM table1 IN base2"
>>>Mais le IN n'est pas reconnu.
>>>
>>>Comment puis-je faire
>>>
>>>Merci
>>>
>>>
>>
>>
>
>
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************