Effectuer un insert a partir d'une table d'une base vers une autre base identique
Bonsoir tout le monde,
Cela faisait trèèèèès longtemps que je n'avais posté ici :)
Jusque là, je trouvais toujours plus ou moins comment me débrouiller.
Si je prends la plume ce soir, c'est pour quérir votre aide donc !
Le pitch :
Je possède une base sous Microsoft sql server (qui sert pour le gestionnaire de ticket de la boite). Sur cette base, pour des raisons de licence, j'ai dû supprimer des données... je sais....
Nous avions atteint les 10 Go de SQL Express, le service devait tourner le weekend absolument.
J'ai tout de même effectué une sauvegarde complète.
Sauvegarde restaurée sur une nouvelle base du même serveur.
J'arrive retrouver les données de la base restaurée et qui sont manquantes sur la base de production.
J'utilise cette requête (si jamais vous voyez quelque chose de faux^^)
Code:
1 2 3 4 5
|
select * from [_SMDBA_].[_TELDETAI_] as TI23
left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20
on TI23.sequence = TI20.SEQUENCE
where TI20.SEQUENCE is null |
Je retrouve avec 1412 enregistrements.
Maintenant je souhaiterais les insérer dans la même table mais de la base de production :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
begin tran
INSERT INTO [TI20].[_SMDBA_].[_TELDETAI_]
([SEQUENCE]
,[LASTMODIFIED]
,[LASTUSER]
,[_GROUP_]
,[NOTE]
,[PROBLEM #]
,[PDATE]
,[PERSON]
,[TIME SPENT]
,[ACTION]
,[COMMANDLINE]
,[_INACTIVE_:]
,[LINK_MSCRM_ACTIVITYID]
,[FROM_GROUP:]
,[TO_GROUP:]
,[SESSIONID]
,[EMAILTOEMAILFROM]
,[SEQ_EMAILMGMT]
,[NOTETYPE]
,[ISPRIVATE]
,[REQUESTOR#]
,[CHARGE]
,[TI11_NoteID])
VALUES
(select * from [_SMDBA_].[_TELDETAI_] as TI23
left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20
on TI23.sequence = TI20.SEQUENCE
where TI20.SEQUENCE is null) |
Et là... bah ça marche pas. Et le message d'erreur n'est pas des plus clair malheureusement :(
Citation:
Msg*156, Niveau*15, État*1, Ligne*37
Syntaxe incorrecte vers le mot clé 'select'.
Msg*102, Niveau*15, État*1, Ligne*40
Syntaxe incorrecte vers ')'.
Heure de fin*: 2024-02-02T18:46:39.6441641+01:00
Est-ce que par le plus grand des hasards, vous auriez une idée ?
TI20 étant la base de production avec les données manquantes.
Ti_2023 étant la base restaurée complète.
Comme j'ai plusieurs tables à faire, si celle-ci passe, les autres passeront :)
Merci par avance pour votre aide et désolé pour ce long message !
insert depuis une autre base de donnée sur la même instance
INSERT INTO table1 (champ1,champ2,champ3) SELECT champ1,champ2,champ3 FROM [base2]..table2;