OVH Cloud OVH Cloud

comment insérer un certain nombre enregistrement

6 réponses
Avatar
Long YE-SU
comment insérer un certain nombre enregistrement dans une table en 1 seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU

6 réponses

Avatar
Philippe T [MS]
Bonjour,

Si ce sont des valeurs que vous voulez insérer, vous pouvez :

- Faire plusieur INSERT comme vous le faisez actuellement,
- Faire des INSERT dans une variable de type TABLE et ensuite insérer le
contenu de cette variable dans la table définitive.

----------------------------------------------------------------------
Philippe TROTIN - Microsoft Service France

"Long YE-SU" wrote in message
news:44337271$0$18341$
comment insérer un certain nombre enregistrement dans une table en 1 seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU




Avatar
Synopsis
Insertion en bloc :

INSERT INTO TableDest (col_a, col_b, col_c)
SELECT (col_1, col_2, col_3)
FROM TableSource
[WHERE ]


"Long YE-SU" a écrit dans le message de
news:44337271$0$18341$
comment insérer un certain nombre enregistrement dans une table en 1 seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU




Avatar
Arnaud CLERET
Si vous n'avez pas de source de données, vous pouvez utiliser une boucle
"for" pour insérer une grande quantité de données.
Si vous partez de fichiers ou autre source de données vous pouvez utilisez
DTS (SQL Server 2000) ou SSIS (SQL Server 2005).
Si vous partez d'une requête SELECT, il est possible d'effectuer l'insertion
en une fois comme indiqué par "Synopsis" dans le message précédent.

--
arno - http://www.dotnetguru2.org/acleret/

"Long YE-SU" a écrit dans le message de news:
44337271$0$18341$
comment insérer un certain nombre enregistrement dans une table en 1 seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU




Avatar
SQLpro [MVP]
Long YE-SU a écrit :
comment insérer un certain nombre enregistrement dans une table en 1 seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU





INSERT INTO MaTable
SELECT 1, 'toto', '2005-12-31'
UNION
SELECT 2, 'titi', '2006-01-23'
UNION
SELECT 3, 'tutu', '2006-01-23'

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
Long YE-SU
en fait, j'ai aussi un autre petit souci...
sur ma première colone , j'ai mis une colone de type "datetime" et dans
Default Value = (getdate())
donc il génère la date et l'heure automatiquement lors de l'insertion

il faudrait que je ne tienne pas compte de la première colonne
lors de l'insertion...


Je pense que cela pourrait être de ce type :

INSERT INTO MaTable
SELECT XXX, 1, 'toto', '2005-12-31'
UNION
SELECT XXX, 2, 'titi', '2006-01-23'
UNION
SELECT XXX, 3, 'tutu', '2006-01-23'

avec XXX : sans aucunne affectation car XXX est définie en datetime

mais la syntaxe ne doit pas être juste

Salutations
Long YE-SU




"SQLpro [MVP]" a écrit dans le message de news:

Long YE-SU a écrit :
> comment insérer un certain nombre enregistrement dans une table en 1


seule
> requête ?
>
> car pour l'instant je fais X fois des INSERT dans ma table et je ne


pense
> que ce soit le plus judicieux ...
>
> Sincères salutations
> Long YE-SU
>
>

INSERT INTO MaTable
SELECT 1, 'toto', '2005-12-31'
UNION
SELECT 2, 'titi', '2006-01-23'
UNION
SELECT 3, 'tutu', '2006-01-23'

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
SQLpro [MVP]
Long YE-SU a écrit :
en fait, j'ai aussi un autre petit souci...
sur ma première colone , j'ai mis une colone de type "datetime" et dans
Default Value = (getdate())
donc il génère la date et l'heure automatiquement lors de l'insertion

il faudrait que je ne tienne pas compte de la première colonne
lors de l'insertion...


Je pense que cela pourrait être de ce type :

INSERT INTO MaTable
SELECT XXX, 1, 'toto', '2005-12-31'
UNION
SELECT XXX, 2, 'titi', '2006-01-23'
UNION
SELECT XXX, 3, 'tutu', '2006-01-23'




Dans ce cas il faut donner la liste des colonnes dans la clause INSERT :

INSERT INTO MaTable (Col2, Col3, Col4)
SELECT 1, 'toto', '2005-12-31'
UNION
SELECT 2, 'titi', '2006-01-23'
UNION
SELECT 3, 'tutu', '2006-01-23'

En ne donnant pas Col1 celle-ci sera ailimentée par défaut si une telle
valeur existe sinon elle sera marqué à NULL

A +


avec XXX : sans aucunne affectation car XXX est définie en datetime

mais la syntaxe ne doit pas être juste

Salutations
Long YE-SU




"SQLpro [MVP]" a écrit dans le message de news:

Long YE-SU a écrit :
comment insérer un certain nombre enregistrement dans une table en 1




seule
requête ?

car pour l'instant je fais X fois des INSERT dans ma table et je ne




pense
que ce soit le plus judicieux ...

Sincères salutations
Long YE-SU




INSERT INTO MaTable
SELECT 1, 'toto', '2005-12-31'
UNION
SELECT 2, 'titi', '2006-01-23'
UNION
SELECT 3, 'tutu', '2006-01-23'

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 ***********************








--
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 ***********************