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

Copie de données d'une base à une autre ...

2 réponses
Avatar
Christophe Cordonnier
N'étant pas un spécialiste des requêtes SQL je me permet de faire appel à la
communauté pour me trouver une petite requête.

La situation :
Une base A avec une table T1
Une base B avec une table T2
Les Tables T1 & T2 sont strictement identiques.

La tâche : Recopier les 25 premiers enregistrements de T1 vers T2.

Simple comme problème ? Enfin pour les pros de SQL qui traînent ici :)

Merci d'avance pour vos réponses :)

--
Christophe - MVP Windows Mobile
http://www.windows-mobile.info/

2 réponses

Avatar
Med Bouchenafa
La difficulté est de comprendre ce que tu entends par les 25 premieres
lignes.
Il n'y pas d'ordre intrinsèque dans SQL Server. Il faut utliser un ORDER BY
Pour selectionner les 25 premières lignes de la table T1 ( ordonnées
suivant Col1)
SELECT * FROM BaseA.dbo.T1 ORDER BY Col1

Pour les insérer dans la table T2
INSERT INTO BaseB.dbo.T2
SELECT * FROM BaseA.dbo.T1 ORDER BY Col1


--
Bien cordialement
Med Bouchenafa


"Christophe Cordonnier" a
écrit dans le message de news:

N'étant pas un spécialiste des requêtes SQL je me permet de faire appel à
la
communauté pour me trouver une petite requête.

La situation :
Une base A avec une table T1
Une base B avec une table T2
Les Tables T1 & T2 sont strictement identiques.

La tâche : Recopier les 25 premiers enregistrements de T1 vers T2.

Simple comme problème ? Enfin pour les pros de SQL qui traînent ici :)

Merci d'avance pour vos réponses :)

--
Christophe - MVP Windows Mobile
http://www.windows-mobile.info/


Avatar
Steve Kass
Med,

Sans doute vous voulez ajouter TOP 25:

INSERT INTO BaseB.dbo.T2
SELECT TOP 25 *
FROM BaseA.dbo.T1
ORDER BY Col1

Christophe,

S'il existe une colonne dans T1 et dans T2 avec la propriété
IDENTITY, il faudra mettre

SET IDENTITY_INSERT BaseB.dbo.T2 ON
GO
INSERT INTO BaseB.dbo.T2
SELECT TOP 25 *
...
SET IDENTITY_INSERT BaseB.dbo.T2 OFF
GO

Je vous conseille de spécifier les noms des colonnes dans votre requête:

INSERT INTO BaseB.dbo.T2(Col1, Col2, ...)
SELECT TOP 25 Col1, Col2...

Steve Kass
Drew University




Med Bouchenafa wrote:

La difficulté est de comprendre ce que tu entends par les 25 premieres
lignes.
Il n'y pas d'ordre intrinsèque dans SQL Server. Il faut utliser un ORDER BY
Pour selectionner les 25 premières lignes de la table T1 ( ordonnées
suivant Col1)
SELECT * FROM BaseA.dbo.T1 ORDER BY Col1

Pour les insérer dans la table T2
INSERT INTO BaseB.dbo.T2
SELECT * FROM BaseA.dbo.T1 ORDER BY Col1