Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trouver des enregistrements manquants dans une table

2 réponses
Avatar
olivier
Bonjour , une petite question qui m'embete depuis un moment , dans une
petite application j'ai 2 sources de donnees :
1) SQL server
2) fichier local access.

Je mets en rapport des enregistrements qui se trouvent sur le serveur
avec une base locale, mais pour ce faire, je dois a chaque lancement du
programme trouver tous les enregistrement du serveur (sous certaine s
conditions where ) qui n'on pas d'enregistrement lie en local.

la liaison ets faite sur un identificateur commun de type numerique.

Pour l'instant, je cherche tous les enregistrements qui m'interesse par
une requete "select .. where" et je boucle sur tous les enregistrements
pour voir si il y a une fiche liees , et si c'st , je la cree ...

Pas tres optimise non ? , j'en vois qui on un rictus :-)

Alors ma question : peut-on chercher par une requete toutes les fiches
de la table serveur qui n'ont PAS de fiche liee dans le fichier local ?
et question subsidiaire , les creer automatiquement ?

un peu dans le style " Select id from source_1 where existe pas en
source_2 et qui ont les yeux bleu (si elle n'existe pas la creer) "

Voila merci d'avance

amicalement

Olivier

2 réponses

Avatar
Fred BROUARD
bonjour

a écrit:
Bonjour , une petite question qui m'embete depuis un moment , dans une
petite application j'ai 2 sources de donnees :
1) SQL server
2) fichier local access.

Je mets en rapport des enregistrements qui se trouvent sur le serveur
avec une base locale, mais pour ce faire, je dois a chaque lancement du
programme trouver tous les enregistrement du serveur (sous certaine s
conditions where ) qui n'on pas d'enregistrement lie en local.

la liaison ets faite sur un identificateur commun de type numerique.

Pour l'instant, je cherche tous les enregistrements qui m'interesse par
une requete "select .. where" et je boucle sur tous les enregistrements
pour voir si il y a une fiche liees , et si c'st , je la cree ...

Pas tres optimise non ? , j'en vois qui on un rictus :-)

Alors ma question : peut-on chercher par une requete toutes les fiches
de la table serveur qui n'ont PAS de fiche liee dans le fichier local ?



oui, c'est une requête ensembliste du genre "différence" réalisable à l'aide de
l'opérateur SQM EXCEPT.

Si vous êtes en MS SQL Server 2005 :
SELECT ... FROM ... WHERE ...
EXCEPT
SELECT ... FROM ... WHERE ...

Si vous êtes en MS SQL Server 2000, les équivalences :
http://sqlpro.developpez.com/cours/sqlaz/ensembles/#L3.4.6


et question subsidiaire , les creer automatiquement ?



oui, commencez votre requête par
INSERT INTO ...
et recopiez l'une des requête précédent.


un peu dans le style " Select id from source_1 where existe pas en
source_2 et qui ont les yeux bleu (si elle n'existe pas la creer) "

Voila merci d'avance

amicalement

Olivier




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 ***********************
Avatar
synopsis
INSERT INTO source_1
SELECT *
FROM source_2
WHERE couleur_yeux='BLEU'
and id not in (select id from source_1)







a écrit dans le message de news:

Bonjour , une petite question qui m'embete depuis un moment , dans une
petite application j'ai 2 sources de donnees :
1) SQL server
2) fichier local access.

Je mets en rapport des enregistrements qui se trouvent sur le serveur
avec une base locale, mais pour ce faire, je dois a chaque lancement du
programme trouver tous les enregistrement du serveur (sous certaine s
conditions where ) qui n'on pas d'enregistrement lie en local.

la liaison ets faite sur un identificateur commun de type numerique.

Pour l'instant, je cherche tous les enregistrements qui m'interesse par
une requete "select .. where" et je boucle sur tous les enregistrements
pour voir si il y a une fiche liees , et si c'st , je la cree ...

Pas tres optimise non ? , j'en vois qui on un rictus :-)

Alors ma question : peut-on chercher par une requete toutes les fiches
de la table serveur qui n'ont PAS de fiche liee dans le fichier local ?
et question subsidiaire , les creer automatiquement ?

un peu dans le style " Select id from source_1 where existe pas en
source_2 et qui ont les yeux bleu (si elle n'existe pas la creer) "

Voila merci d'avance

amicalement

Olivier