OVH Cloud OVH Cloud

éclater une table en 2

6 réponses
Avatar
olivier HARO
Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7


J'ai une table tamporaire "TABLE_TEMP"

TABLE_TEMP
_raison_sociale
_adresse
_nom_premier_dirigeant
_prénom

J'aimerais inserer toutes les lignes de cette table dans 2 tables séparées
de la manière suivante:

SOCIETES
_societes_id
_raison_sociale
_adresse

CONTACTS
_contacts_id
_societes_id (ext_key : pour savoir à quelle société appartient ce
contact)
_nom
_prénom


C'est possible de faire ca directement en SQL sans passer par PL/SQL (que je
ne connais pas)?
j'ai beau chercher dans ma petite tête, impossible de trouver la solution
tout seul ;(



Merci beaucoup pour aide.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004

6 réponses

Avatar
bruno reiter [MVP]
on ne peut pas insérer dans 2 table en une instruction mais on peut faire 2
insert dans une transaction
begin tran
insert T1
test erreur
insert T2
test erreur
commit tran

br

"olivier HARO" wrote in message
news:412cb871$0$42767$
Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7


J'ai une table tamporaire "TABLE_TEMP"

TABLE_TEMP
_raison_sociale
_adresse
_nom_premier_dirigeant
_prénom

J'aimerais inserer toutes les lignes de cette table dans 2 tables séparées
de la manière suivante:

SOCIETES
_societes_id
_raison_sociale
_adresse

CONTACTS
_contacts_id
_societes_id (ext_key : pour savoir à quelle société appartient ce
contact)
_nom
_prénom


C'est possible de faire ca directement en SQL sans passer par PL/SQL (que


je
ne connais pas)?
j'ai beau chercher dans ma petite tête, impossible de trouver la solution
tout seul ;(



Merci beaucoup pour aide.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004




Avatar
olivier HARO
ok, mais ca ne me permet pas de faire un lien entre les 2 tables comme je
l'ai montré dans l'exemple que j'ai donné...
je me trompe?




"bruno reiter [MVP]" <remove.this! a écrit dans le message
de news:%
on ne peut pas insérer dans 2 table en une instruction mais on peut faire


2
insert dans une transaction
begin tran
insert T1
test erreur
insert T2
test erreur
commit tran

br

"olivier HARO" wrote in message
news:412cb871$0$42767$
> Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7
>
>
> J'ai une table tamporaire "TABLE_TEMP"
>
> TABLE_TEMP
> _raison_sociale
> _adresse
> _nom_premier_dirigeant
> _prénom
>
> J'aimerais inserer toutes les lignes de cette table dans 2 tables


séparées
> de la manière suivante:
>
> SOCIETES
> _societes_id
> _raison_sociale
> _adresse
>
> CONTACTS
> _contacts_id
> _societes_id (ext_key : pour savoir à quelle société appartient ce
> contact)
> _nom
> _prénom
>
>
> C'est possible de faire ca directement en SQL sans passer par PL/SQL


(que
je
> ne connais pas)?
> j'ai beau chercher dans ma petite tête, impossible de trouver la


solution
> tout seul ;(
>
>
>
> Merci beaucoup pour aide.
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
>
>






---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
Avatar
bruno reiter [MVP]
si tu n'as pas de doublon sur raison sociale + adresse, pas de problème,
sinon tu dois générer toi-même ton id société

br

"olivier HARO" wrote in message
news:412da0ed$0$9556$
ok, mais ca ne me permet pas de faire un lien entre les 2 tables comme je
l'ai montré dans l'exemple que j'ai donné...
je me trompe?




"bruno reiter [MVP]" <remove.this! a écrit dans le


message
de news:%
> on ne peut pas insérer dans 2 table en une instruction mais on peut


faire
2
> insert dans une transaction
> begin tran
> insert T1
> test erreur
> insert T2
> test erreur
> commit tran
>
> br
>
> "olivier HARO" wrote in message
> news:412cb871$0$42767$
> > Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7
> >
> >
> > J'ai une table tamporaire "TABLE_TEMP"
> >
> > TABLE_TEMP
> > _raison_sociale
> > _adresse
> > _nom_premier_dirigeant
> > _prénom
> >
> > J'aimerais inserer toutes les lignes de cette table dans 2 tables
séparées
> > de la manière suivante:
> >
> > SOCIETES
> > _societes_id
> > _raison_sociale
> > _adresse
> >
> > CONTACTS
> > _contacts_id
> > _societes_id (ext_key : pour savoir à quelle société appartient ce
> > contact)
> > _nom
> > _prénom
> >
> >
> > C'est possible de faire ca directement en SQL sans passer par PL/SQL
(que
> je
> > ne connais pas)?
> > j'ai beau chercher dans ma petite tête, impossible de trouver la
solution
> > tout seul ;(
> >
> >
> >
> > Merci beaucoup pour aide.
> >
> >
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
> >
> >
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004




Avatar
olivier HARO
ok, je dois donc générer moi même mon societes_id,
mais je vois pas par quel jeu de requêtes je peux arriver à faire ca.

si je comprend bien, je dois d'abord inserer mes données dans la table
SOCIETES avec un nouveau societes_id à chaque fois
et apres je dois inserer mes données dans CONTACTS en faisant un lien vers
le bon societes_id à chaque fois.

Mais comment? Là est tout mon problême ;)

"bruno reiter [MVP]" <remove.this! a écrit dans le message
de news:uFnLL%
si tu n'as pas de doublon sur raison sociale + adresse, pas de problème,
sinon tu dois générer toi-même ton id société

br

"olivier HARO" wrote in message
news:412da0ed$0$9556$
> ok, mais ca ne me permet pas de faire un lien entre les 2 tables comme


je
> l'ai montré dans l'exemple que j'ai donné...
> je me trompe?
>
>
>
>
> "bruno reiter [MVP]" <remove.this! a écrit dans le
message
> de news:%
> > on ne peut pas insérer dans 2 table en une instruction mais on peut
faire
> 2
> > insert dans une transaction
> > begin tran
> > insert T1
> > test erreur
> > insert T2
> > test erreur
> > commit tran
> >
> > br
> >
> > "olivier HARO" wrote in message
> > news:412cb871$0$42767$
> > > Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7
> > >
> > >
> > > J'ai une table tamporaire "TABLE_TEMP"
> > >
> > > TABLE_TEMP
> > > _raison_sociale
> > > _adresse
> > > _nom_premier_dirigeant
> > > _prénom
> > >
> > > J'aimerais inserer toutes les lignes de cette table dans 2 tables
> séparées
> > > de la manière suivante:
> > >
> > > SOCIETES
> > > _societes_id
> > > _raison_sociale
> > > _adresse
> > >
> > > CONTACTS
> > > _contacts_id
> > > _societes_id (ext_key : pour savoir à quelle société appartient


ce
> > > contact)
> > > _nom
> > > _prénom
> > >
> > >
> > > C'est possible de faire ca directement en SQL sans passer par PL/SQL
> (que
> > je
> > > ne connais pas)?
> > > j'ai beau chercher dans ma petite tête, impossible de trouver la
> solution
> > > tout seul ;(
> > >
> > >
> > >
> > > Merci beaucoup pour aide.
> > >
> > >
> > > ---
> > > Outgoing mail is certified Virus Free.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
> > >
> > >
> >
> >
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
>
>






---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
Avatar
bruno reiter [MVP]
SELECT ID_Num = IDENTITY(int, 1, 1), *
INTO NewTable
FROM OldTable

extrait de l'aide

br


"olivier HARO" wrote in message
news:412dd3cd$0$25101$
ok, je dois donc générer moi même mon societes_id,
mais je vois pas par quel jeu de requêtes je peux arriver à faire ca.

si je comprend bien, je dois d'abord inserer mes données dans la table
SOCIETES avec un nouveau societes_id à chaque fois
et apres je dois inserer mes données dans CONTACTS en faisant un lien vers
le bon societes_id à chaque fois.

Mais comment? Là est tout mon problême ;)

"bruno reiter [MVP]" <remove.this! a écrit dans le


message
de news:uFnLL%
> si tu n'as pas de doublon sur raison sociale + adresse, pas de problème,
> sinon tu dois générer toi-même ton id société
>
> br
>
> "olivier HARO" wrote in message
> news:412da0ed$0$9556$
> > ok, mais ca ne me permet pas de faire un lien entre les 2 tables comme
je
> > l'ai montré dans l'exemple que j'ai donné...
> > je me trompe?
> >
> >
> >
> >
> > "bruno reiter [MVP]" <remove.this! a écrit dans le
> message
> > de news:%
> > > on ne peut pas insérer dans 2 table en une instruction mais on peut
> faire
> > 2
> > > insert dans une transaction
> > > begin tran
> > > insert T1
> > > test erreur
> > > insert T2
> > > test erreur
> > > commit tran
> > >
> > > br
> > >
> > > "olivier HARO" wrote in message
> > > news:412cb871$0$42767$
> > > > Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7
> > > >
> > > >
> > > > J'ai une table tamporaire "TABLE_TEMP"
> > > >
> > > > TABLE_TEMP
> > > > _raison_sociale
> > > > _adresse
> > > > _nom_premier_dirigeant
> > > > _prénom
> > > >
> > > > J'aimerais inserer toutes les lignes de cette table dans 2 tables
> > séparées
> > > > de la manière suivante:
> > > >
> > > > SOCIETES
> > > > _societes_id
> > > > _raison_sociale
> > > > _adresse
> > > >
> > > > CONTACTS
> > > > _contacts_id
> > > > _societes_id (ext_key : pour savoir à quelle société appartient
ce
> > > > contact)
> > > > _nom
> > > > _prénom
> > > >
> > > >
> > > > C'est possible de faire ca directement en SQL sans passer par


PL/SQL
> > (que
> > > je
> > > > ne connais pas)?
> > > > j'ai beau chercher dans ma petite tête, impossible de trouver la
> > solution
> > > > tout seul ;(
> > > >
> > > >
> > > >
> > > > Merci beaucoup pour aide.
> > > >
> > > >
> > > > ---
> > > > Outgoing mail is certified Virus Free.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
> > > >
> > > >
> > >
> > >
> >
> >
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
> >
> >
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004




Avatar
olivier HARO
ok, j'ai rien compri......
pas grâve, merci kan même d'avoir essayer, au moins un petit peu, de m
aider....




"bruno reiter [MVP]" <remove.this! a écrit dans le message
de news:
SELECT ID_Num = IDENTITY(int, 1, 1), *
INTO NewTable
FROM OldTable

extrait de l'aide

br


"olivier HARO" wrote in message
news:412dd3cd$0$25101$
> ok, je dois donc générer moi même mon societes_id,
> mais je vois pas par quel jeu de requêtes je peux arriver à faire ca.
>
> si je comprend bien, je dois d'abord inserer mes données dans la table
> SOCIETES avec un nouveau societes_id à chaque fois
> et apres je dois inserer mes données dans CONTACTS en faisant un lien


vers
> le bon societes_id à chaque fois.
>
> Mais comment? Là est tout mon problême ;)
>
> "bruno reiter [MVP]" <remove.this! a écrit dans le
message
> de news:uFnLL%
> > si tu n'as pas de doublon sur raison sociale + adresse, pas de


problème,
> > sinon tu dois générer toi-même ton id société
> >
> > br
> >
> > "olivier HARO" wrote in message
> > news:412da0ed$0$9556$
> > > ok, mais ca ne me permet pas de faire un lien entre les 2 tables


comme
> je
> > > l'ai montré dans l'exemple que j'ai donné...
> > > je me trompe?
> > >
> > >
> > >
> > >
> > > "bruno reiter [MVP]" <remove.this! a écrit dans le
> > message
> > > de news:%
> > > > on ne peut pas insérer dans 2 table en une instruction mais on


peut
> > faire
> > > 2
> > > > insert dans une transaction
> > > > begin tran
> > > > insert T1
> > > > test erreur
> > > > insert T2
> > > > test erreur
> > > > commit tran
> > > >
> > > > br
> > > >
> > > > "olivier HARO" wrote in message
> > > > news:412cb871$0$42767$
> > > > > Bonjour,j'ai un petit problème de SQL avec SQL SERVER 7
> > > > >
> > > > >
> > > > > J'ai une table tamporaire "TABLE_TEMP"
> > > > >
> > > > > TABLE_TEMP
> > > > > _raison_sociale
> > > > > _adresse
> > > > > _nom_premier_dirigeant
> > > > > _prénom
> > > > >
> > > > > J'aimerais inserer toutes les lignes de cette table dans 2


tables
> > > séparées
> > > > > de la manière suivante:
> > > > >
> > > > > SOCIETES
> > > > > _societes_id
> > > > > _raison_sociale
> > > > > _adresse
> > > > >
> > > > > CONTACTS
> > > > > _contacts_id
> > > > > _societes_id (ext_key : pour savoir à quelle société


appartient
> ce
> > > > > contact)
> > > > > _nom
> > > > > _prénom
> > > > >
> > > > >
> > > > > C'est possible de faire ca directement en SQL sans passer par
PL/SQL
> > > (que
> > > > je
> > > > > ne connais pas)?
> > > > > j'ai beau chercher dans ma petite tête, impossible de trouver la
> > > solution
> > > > > tout seul ;(
> > > > >
> > > > >
> > > > >
> > > > > Merci beaucoup pour aide.
> > > > >
> > > > >
> > > > > ---
> > > > > Outgoing mail is certified Virus Free.
> > > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > > Version: 6.0.742 / Virus Database: 495 - Release Date:


19/08/2004
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > ---
> > > Outgoing mail is certified Virus Free.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
> > >
> > >
> >
> >
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004
>
>






---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.742 / Virus Database: 495 - Release Date: 19/08/2004