38 votes

Comment exécuter plusieurs instructions SQL dans l'éditeur de requêtes d'Access ?

J'ai un fichier texte contenant quelques instructions SQL que je veux exécuter sur une base de données Access. sur une base de données Access. Je pensais que cela devait être possible avec l'éditeur de requêtes d'Access. éditeur de requêtes d'Access. Je vais donc dans cet éditeur et je colle les instructions :

insert into aFewYears (yr) values ('2000')
insert into aFewYears (yr) values ('2001')
insert into aFewYears (yr) values ('2002')
insert into aFewYears (yr) values ('2003')

En essayant de les exécuter (en appuyant sur le point d'exclamation rouge) je reçois un
Missing semicolon (;) at end of SQL statement.

Cela pourrait être considéré comme une indication que l'éditeur permet d'exécuter des plusieurs déclarations. Donc, je modifie les instructions et ajoute un tel point-virgule à la fin :

insert into aFewYears (yr) values ('2000');
insert into aFewYears (yr) values ('2001');
insert into aFewYears (yr) values ('2002');
insert into aFewYears (yr) values ('2003');

Ensuite, je reçois un
Characters found after end of SQL statement.
ce qui pourrait probablement être pris comme une indication qu'il n'est pas possible d'exécuter des déclarations multiples.

Ok, donc la question est la suivante : est-il possible d'exécuter plusieurs instructions dans l'éditeur de requêtes ? l'éditeur de requêtes, ou est-il possible d'exécuter par lot des instructions sql dans un fichier fichier dans/sur/contre Access.

Merci / René

modifier Les instructions d'insertion ont été utilisées à titre d'exemple et je me rends compte qu'elles sont loin d'être parfaites, parce qu'elles vont toutes à la même table et qu'une telle chose peut évidemment être résolue d'une manière ou d'une autre en utilisant une instruction qui a une union ou autre. Dans le cas que j'essaie de résoudre, le fichier contient non seulement des instructions d'insertion, mais aussi des instructions de création de table et des instructions d'insertion avec différentes tables sous-jacentes. J'espérais donc (et j'espère toujours) qu'il existe quelque chose comme mon bien-aimé SQL*Plus for Oracle qui peut exécuter un fichier contenant toutes sortes d'instructions SQL.

0 votes

En utilisant l'éditeur de requêtes LINQPad, nous pouvons exécuter des requêtes multiples en ajoutant Go après chaque déclaration

0voto

Matthew Lock Points 3945

Il est peut-être préférable d'utiliser un programme tiers pour saisir les requêtes dans Access, par exemple WinSQL Je pense de mémoire WinSQL prend en charge les requêtes multiples via la fonction de traitement par lots.

J'ai finalement trouvé plus simple d'écrire un programme en perl pour faire des INSERTS en masse dans un Access via ODBC. Mais vous pouvez utiliser vbscript ou tout autre langage qui supporte ODBC.

Vous pouvez alors faire ce que vous voulez et avoir votre propre logique compliquée pour gérer l'importation.

2 votes

WinSQL Lite est gratuit, mais Dev et Pro ne le sont pas. voir comparer

0 votes

N'exécute pas d'instructions multiples contre Access.

0 votes

Avez-vous essayé la fonction de terminaison de requête ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X