OVH Cloud OVH Cloud

Insertion multi lignes

11 réponses
Avatar
Jerome
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2, 'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome

10 réponses

1 2
Avatar
bruno reiter [MVP]
multi ligne, seulement avec insert ... select
ou insert ... exec

br

"Jerome" <assistance@~nospam.scoqi.com> wrote in message
news:cs3771$981$
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un


script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,


'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome




Avatar
Synopsis
INSERT ne fonctionne pas de cette façon :

En reprenant votre exemple :

Insert Into table (col1, col2) values ('PR1', 'Produit1')
Insert Into table (col1, col2) values ('PR2, 'Produit2')
Insert Into table (col1, col2) values ('PR3', 'Produit3')

"Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."

Pour faire de l'insertion multilignes :

INSERT INTO TableDestination (col1, col2)
SELECT Value1, Value2
FROM TableSource




"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs3771$981$
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un


script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,


'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome




Avatar
Jerome
Merci pour vos réponses

Je souhaitais faire l'insert de cette manière parce que je suis dans un
process qui lit séquentiellement un fichier TXT. Aussi, je voulais, toutes
les 1000 lignes (en stockant les valeurs dans une variable et en
construisant ensuite l'INSERT avec un VALUES faisant référénce à cette
variable), envoyer un ordre d'écriture pour accélérer le processus plutot
que de faire un INSERT à chaque lecture du fichier texte

Merci en tout cas à tous les 2 pour vos réponses et vos éclaircissements

Jerome


"Synopsis" a écrit dans le message de news:
41e5371e$0$25790$
INSERT ne fonctionne pas de cette façon :

En reprenant votre exemple :

Insert Into table (col1, col2) values ('PR1', 'Produit1')
Insert Into table (col1, col2) values ('PR2, 'Produit2')
Insert Into table (col1, col2) values ('PR3', 'Produit3')

"Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."

Pour faire de l'insertion multilignes :

INSERT INTO TableDestination (col1, col2)
SELECT Value1, Value2
FROM TableSource




"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs3771$981$
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un


script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,


'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome








Avatar
Jerome
Question complémentaire : Par rapport à mon cas de figure, existe-t-il un
moyen d'accélérer le processus d'écriture. A titre d'exemple, mon fichier
d'export TXT contient 70 000 lignes et met environ 10min à être intégré en
fonctionnant à raison d'un INSERT par ligne lue..

Jerome


"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de news:
cs3des$bsb$
Merci pour vos réponses

Je souhaitais faire l'insert de cette manière parce que je suis dans un
process qui lit séquentiellement un fichier TXT. Aussi, je voulais, toutes
les 1000 lignes (en stockant les valeurs dans une variable et en
construisant ensuite l'INSERT avec un VALUES faisant référénce à cette
variable), envoyer un ordre d'écriture pour accélérer le processus plutot
que de faire un INSERT à chaque lecture du fichier texte

Merci en tout cas à tous les 2 pour vos réponses et vos éclaircissements

Jerome


"Synopsis" a écrit dans le message de news:
41e5371e$0$25790$
INSERT ne fonctionne pas de cette façon :

En reprenant votre exemple :

Insert Into table (col1, col2) values ('PR1', 'Produit1')
Insert Into table (col1, col2) values ('PR2, 'Produit2')
Insert Into table (col1, col2) values ('PR3', 'Produit3')

"Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."

Pour faire de l'insertion multilignes :

INSERT INTO TableDestination (col1, col2)
SELECT Value1, Value2
FROM TableSource




"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs3771$981$
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un


script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,


'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est
la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome












Avatar
Synopsis
Utilises-tu BULK INSERT pour intégrer tes données ?

"Synopsis" a écrit dans le message de
news:41e5371e$0$25790$
INSERT ne fonctionne pas de cette façon :

En reprenant votre exemple :

Insert Into table (col1, col2) values ('PR1', 'Produit1')
Insert Into table (col1, col2) values ('PR2, 'Produit2')
Insert Into table (col1, col2) values ('PR3', 'Produit3')

"Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."

Pour faire de l'insertion multilignes :

INSERT INTO TableDestination (col1, col2)
SELECT Value1, Value2
FROM TableSource




"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs3771$981$
> Bonjour,
>
> J'ai essayé (sans succès) de faire une insertion multi lignes dans un
script
> avec la ligne de commandes ci-dessous :
>
> insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,
'Produit2','PR3',
> 'Produit3')
>
> J'ai essayé des variantes de syntaxe sans plus de succès.
> Est ce possible comme type d'insertion groupée et si oui quelle en est


la
> syntaxe exact ?
>
> Merci par avance pour vos réponses
>
> Bonne journée à tous
>
> Jerome
>
>




Avatar
Jerome
Non, J'avais regardé le bcp mais je n'avais pas réussi à mettre en oeuvre le
fichier décrivant le format du fichier d'import alors je me suis rabattu sur
la réalisation d'une appli
Je vais regardé cette fonction et voir si je peux la mettre en oeuvre

Merci pour ton aide

Jerome



"Synopsis" a écrit dans le message de news:
41e548f9$0$25808$
Utilises-tu BULK INSERT pour intégrer tes données ?

"Synopsis" a écrit dans le message de
news:41e5371e$0$25790$
INSERT ne fonctionne pas de cette façon :

En reprenant votre exemple :

Insert Into table (col1, col2) values ('PR1', 'Produit1')
Insert Into table (col1, col2) values ('PR2, 'Produit2')
Insert Into table (col1, col2) values ('PR3', 'Produit3')

"Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."

Pour faire de l'insertion multilignes :

INSERT INTO TableDestination (col1, col2)
SELECT Value1, Value2
FROM TableSource




"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs3771$981$
> Bonjour,
>
> J'ai essayé (sans succès) de faire une insertion multi lignes dans un
script
> avec la ligne de commandes ci-dessous :
>
> insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,
'Produit2','PR3',
> 'Produit3')
>
> J'ai essayé des variantes de syntaxe sans plus de succès.
> Est ce possible comme type d'insertion groupée et si oui quelle en est


la
> syntaxe exact ?
>
> Merci par avance pour vos réponses
>
> Bonne journée à tous
>
> Jerome
>
>








Avatar
Fred BROUARD
1) SQL Server n'implémente pas le Row Value Constructeur pemettant de faire une
insertion valuée multiligne. La syntaxe est la suivante :
INSERT T_TITRE (TIT_CODE, TIT_LIBELLE)
VALUES (('M.' , 'Monsieur' ),
('Mlle.' , 'Mademoiselle'),
('Mme.' , 'Madame' ))
et non comme indiqué par erreur ici :
http://sqlpro.developpez.com/cours/sqlaz/dml/#L1.2
(il faut que je corrige !)

2) utiliser BULK INSERT pour ce faire.

A +


Jerome a écrit:
Bonjour,

J'ai essayé (sans succès) de faire une insertion multi lignes dans un script
avec la ligne de commandes ci-dessous :

insert table (col1, col2) values ('PR1', 'Produit1', 'PR2, 'Produit2','PR3',
'Produit3')

J'ai essayé des variantes de syntaxe sans plus de succès.
Est ce possible comme type d'insertion groupée et si oui quelle en est la
syntaxe exact ?

Merci par avance pour vos réponses

Bonne journée à tous

Jerome





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Med Bouchenafa
Le fichier de format de BCP est effectivement assez déroutant pour celui qui l'utilise pour la
première fois.
Une façon de contourner le problème est d'utiliser DTS qui grâce à son interface graphique est
beaucoup plus simple à utiliser

--
Bien cordialement
Med Bouchenafa

"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de news:
cs3k1m$n4d$
Non, J'avais regardé le bcp mais je n'avais pas réussi à mettre en oeuvre le
fichier décrivant le format du fichier d'import alors je me suis rabattu sur
la réalisation d'une appli
Je vais regardé cette fonction et voir si je peux la mettre en oeuvre

Merci pour ton aide

Jerome



"Synopsis" a écrit dans le message de news:
41e548f9$0$25808$
> Utilises-tu BULK INSERT pour intégrer tes données ?
>
> "Synopsis" a écrit dans le message de
> news:41e5371e$0$25790$
>> INSERT ne fonctionne pas de cette façon :
>>
>> En reprenant votre exemple :
>>
>> Insert Into table (col1, col2) values ('PR1', 'Produit1')
>> Insert Into table (col1, col2) values ('PR2, 'Produit2')
>> Insert Into table (col1, col2) values ('PR3', 'Produit3')
>>
>> "Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."
>>
>> Pour faire de l'insertion multilignes :
>>
>> INSERT INTO TableDestination (col1, col2)
>> SELECT Value1, Value2
>> FROM TableSource
>>
>>
>>
>>
>> "Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
>> news:cs3771$981$
>> > Bonjour,
>> >
>> > J'ai essayé (sans succès) de faire une insertion multi lignes dans un
>> script
>> > avec la ligne de commandes ci-dessous :
>> >
>> > insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,
>> 'Produit2','PR3',
>> > 'Produit3')
>> >
>> > J'ai essayé des variantes de syntaxe sans plus de succès.
>> > Est ce possible comme type d'insertion groupée et si oui quelle en est
> la
>> > syntaxe exact ?
>> >
>> > Merci par avance pour vos réponses
>> >
>> > Bonne journée à tous
>> >
>> > Jerome
>> >
>> >
>>
>>
>
>




Avatar
Jerome
Ma contrainte était que je souhaitais que cela puisse être lancé par un
utilisateur en cliquant sur un raccourci, sachant que cet utilisateur n'a
pas la console et n'a pas le droit d'y accéder.
C'est pour cela que j'avais tenté le BCP (mais vite calmé par le fichier de
format :-) )

Jerome


"Med Bouchenafa" a écrit dans le message de news:
em%23qZsa%
Le fichier de format de BCP est effectivement assez déroutant pour celui
qui l'utilise pour la
première fois.
Une façon de contourner le problème est d'utiliser DTS qui grâce à son
interface graphique est
beaucoup plus simple à utiliser

--
Bien cordialement
Med Bouchenafa

"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de news:
cs3k1m$n4d$
Non, J'avais regardé le bcp mais je n'avais pas réussi à mettre en oeuvre
le
fichier décrivant le format du fichier d'import alors je me suis rabattu
sur
la réalisation d'une appli
Je vais regardé cette fonction et voir si je peux la mettre en oeuvre

Merci pour ton aide

Jerome



"Synopsis" a écrit dans le message de news:
41e548f9$0$25808$
> Utilises-tu BULK INSERT pour intégrer tes données ?
>
> "Synopsis" a écrit dans le message de
> news:41e5371e$0$25790$
>> INSERT ne fonctionne pas de cette façon :
>>
>> En reprenant votre exemple :
>>
>> Insert Into table (col1, col2) values ('PR1', 'Produit1')
>> Insert Into table (col1, col2) values ('PR2, 'Produit2')
>> Insert Into table (col1, col2) values ('PR3', 'Produit3')
>>
>> "Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2, ..."
>>
>> Pour faire de l'insertion multilignes :
>>
>> INSERT INTO TableDestination (col1, col2)
>> SELECT Value1, Value2
>> FROM TableSource
>>
>>
>>
>>
>> "Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
>> news:cs3771$981$
>> > Bonjour,
>> >
>> > J'ai essayé (sans succès) de faire une insertion multi lignes dans
>> > un
>> script
>> > avec la ligne de commandes ci-dessous :
>> >
>> > insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,
>> 'Produit2','PR3',
>> > 'Produit3')
>> >
>> > J'ai essayé des variantes de syntaxe sans plus de succès.
>> > Est ce possible comme type d'insertion groupée et si oui quelle en
>> > est
> la
>> > syntaxe exact ?
>> >
>> > Merci par avance pour vos réponses
>> >
>> > Bonne journée à tous
>> >
>> > Jerome
>> >
>> >
>>
>>
>
>








Avatar
Synopsis
Il existe un utilitaire qui permet de lancer des lots DTS
, sans à avoir à installer un SQL Server 2000.

DtsRunUI.exe (version Interface Windows)
DtsRun.exe (command Dos ; intéressant pour des Batchs)

Il est installé dans le Binn. (Le chemin est déclaré dans le Path)

Pour cela, tu dois simplement installé les composants SQL server
sur la station de travail.

Renseignes-toi pour les licences ;-:)






Tu peux installer les composants SQL Server sur la machie
"Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
news:cs89lj$klk$
Ma contrainte était que je souhaitais que cela puisse être lancé par un
utilisateur en cliquant sur un raccourci, sachant que cet utilisateur n'a
pas la console et n'a pas le droit d'y accéder.
C'est pour cela que j'avais tenté le BCP (mais vite calmé par le fichier


de
format :-) )

Jerome


"Med Bouchenafa" a écrit dans le message de


news:
em%23qZsa%
> Le fichier de format de BCP est effectivement assez déroutant pour celui
> qui l'utilise pour la
> première fois.
> Une façon de contourner le problème est d'utiliser DTS qui grâce à son
> interface graphique est
> beaucoup plus simple à utiliser
>
> --
> Bien cordialement
> Med Bouchenafa
>
> "Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de news:
> cs3k1m$n4d$
>> Non, J'avais regardé le bcp mais je n'avais pas réussi à mettre en


oeuvre
>> le
>> fichier décrivant le format du fichier d'import alors je me suis


rabattu
>> sur
>> la réalisation d'une appli
>> Je vais regardé cette fonction et voir si je peux la mettre en oeuvre
>>
>> Merci pour ton aide
>>
>> Jerome
>>
>>
>>
>> "Synopsis" a écrit dans le message de news:
>> 41e548f9$0$25808$
>> > Utilises-tu BULK INSERT pour intégrer tes données ?
>> >
>> > "Synopsis" a écrit dans le message de
>> > news:41e5371e$0$25790$
>> >> INSERT ne fonctionne pas de cette façon :
>> >>
>> >> En reprenant votre exemple :
>> >>
>> >> Insert Into table (col1, col2) values ('PR1', 'Produit1')
>> >> Insert Into table (col1, col2) values ('PR2, 'Produit2')
>> >> Insert Into table (col1, col2) values ('PR3', 'Produit3')
>> >>
>> >> "Insérer dans les champs Col1, Col2, ... les valeurs Val1, Val2,


..."
>> >>
>> >> Pour faire de l'insertion multilignes :
>> >>
>> >> INSERT INTO TableDestination (col1, col2)
>> >> SELECT Value1, Value2
>> >> FROM TableSource
>> >>
>> >>
>> >>
>> >>
>> >> "Jerome" <assistance@~nospam.scoqi.com> a écrit dans le message de
>> >> news:cs3771$981$
>> >> > Bonjour,
>> >> >
>> >> > J'ai essayé (sans succès) de faire une insertion multi lignes dans
>> >> > un
>> >> script
>> >> > avec la ligne de commandes ci-dessous :
>> >> >
>> >> > insert table (col1, col2) values ('PR1', 'Produit1', 'PR2,
>> >> 'Produit2','PR3',
>> >> > 'Produit3')
>> >> >
>> >> > J'ai essayé des variantes de syntaxe sans plus de succès.
>> >> > Est ce possible comme type d'insertion groupée et si oui quelle en
>> >> > est
>> > la
>> >> > syntaxe exact ?
>> >> >
>> >> > Merci par avance pour vos réponses
>> >> >
>> >> > Bonne journée à tous
>> >> >
>> >> > Jerome
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>




1 2