Copier base to base

Fermé
nadir4822 Messages postés 6 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 29 avril 2014 - 9 janv. 2013 à 23:14
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 - 14 janv. 2013 à 22:26
J'ai deux base de donner sur même serveur :
1-Windows server 2000
2-SQL server 2000
Mes deux bases sont identiques
Mais la base2 contient des informations jusqu'à 31/08/2009
Et la base 1 contient des informations jusqu'aux aujourd'hui
les deux base commence de la même année: veut dire au 01/03/2005
Je voudrai insère les informations qui me manque de la base1 ver base2
merci d'avance

5 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
10 janv. 2013 à 15:36
Bonjour,
S'il n'y a qu'une table dans les deux bases, il suffit de faire :
INSERT INTO base2.table (champs) VALUES (SELECT champs from  base1.table) WHERE date>"31/08/2009") 
Avec le format date qui va bien évidemment.

Sinon, avec plusieurs tables, il faudrait insérer les ID des lignes de la tables de faits datant d'après le 31/08/2009, et copier les tables de dimensions.
0
nadir4822 Messages postés 6 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 29 avril 2014
11 janv. 2013 à 15:08
bonjour
cher amis j'ai mis la requette suivante :

INSERT INTO nombase1.dbo.table1 (champ1) VALUES
(SELECT champ from nombase2.dbo.table2 WHERE date>"2009-08-31 00:00:00.000")

analyse de requette m'envoie les messages suivant:

1-Syntaxe incorrecte vers le mot clé 'SELECT'.
2-Ligne 2 : syntaxe incorrecte vers ')'.
sache bien que tabl1 et table2 non pas ID mais sont identique dans leur création.

merci pour tous
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
Modifié par Morgothal le 11/01/2013 à 15:52
Ah
Toutes mes excuses, je me suis trompé dans la syntaxe : si les données que l'on veut insérer sont sélectionnées par un SELECT, il n'y a pas de VALUES.
La requête devient donc :
INSERT INTO nombase1.dbo.table1 (champ1) 
SELECT champ from nombase2.dbo.table2 WHERE date>"2009-08-31 00:00:00.000"
0
nadir4822 Messages postés 6 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 29 avril 2014
13 janv. 2013 à 11:06
cher amis j'ai mis votre requette mais sql me retourne le message suivant

"2009-08-31 00:00:00.000 "nom de colonne incorrect


sachez que mon champs est datecreation
et que j'ai mis datecreation a la place de date
merci
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
13 janv. 2013 à 13:35
Si c'est bien du SQL server, il faut entourer la date de simple quotes 'date' et pas des doubles "date".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nadir4822 Messages postés 6 Date d'inscription mercredi 9 janvier 2013 Statut Membre Dernière intervention 29 avril 2014
14 janv. 2013 à 12:29
cher amis j'ai fait exactement se que vous m'avais indiquer ecrire la date en simple quotes
sql sevrer 2000 ma généré l'erreur suivante:

La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.
L'instruction a été arrêtée.
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
14 janv. 2013 à 22:26
Il faut sûrement agrandir le champ contenant la date...
0