Transfert de tables hebdomadaires

Transfert de tables hebdomadaires - SQL/NoSQL - Programmation

Marsh Posté le 06-06-2006 à 17:13:20    

Bonjour à tous,
je fais appel à vous car j ai un petit souci sous SQL :
 
En fait, je possède 2 tables de données (une table tampon et une table de sauvegarde annuelle).
Je souhaiterai faire un transfert du tampon dans la table de cumul annuel et vider la table tampon...
 
Merci par avance de votre aide
 
Bernard

Reply

Marsh Posté le 06-06-2006 à 17:13:20   

Reply

Marsh Posté le 07-06-2006 à 09:05:23    

Renseigne toi sur les fonctions : ALTER TABLE , ALTER COLUMN ( pour ajouter dans une table... ) et la fonction DROP TABLE
Google est ton amis pour ca ;) ^^

Reply

Marsh Posté le 07-06-2006 à 09:07:52    

elles ont quelle taille tes tables (combien de lignes)? Sinon tu peut le faire en perl

Reply

Marsh Posté le 07-06-2006 à 10:05:02    

insert as select et delete... j'vois que ça :/

Reply

Marsh Posté le 08-06-2006 à 14:28:23    

Merci Messieurs, je vais me renseigner sur les fonctions citées...

Reply

Marsh Posté le 08-06-2006 à 15:27:11    

Un collègue m a refilé un bout de prog seulement, le prog me permet de vider ma table mais pas de transférer dans l autre
 
Mes 2 tables sont : Table (destination) et Table_temp (source)
Mes colonnes dans les 2 tables sont les suivantes :
Nom   Type de donnée Longueur
ANA_ID   int   4
JOUR   char   10
HEURE   char   10
GROUPE   char   10
VARIABLE  char   20
EVENEMENT  char   25
LIBELLE_ETAT  char   16
LIBELLE_ALARME char   60
 
*******************************
PROGRAMME
*******************************
 
 
SP_Transfert_Table_tmpVersTable
 
CREATE PROCEDURE SP_TransfertTable_tmpVersTable AS
 
-- Recherche du numéro du dernier enregistrement de la table de Production Tampon
-- Déclaration de la variable de mémorisation du numéro max
DECLARE @numeromax as int
 
SELECT @numeromax=MAX(ANA_ID)
FROM Table_tmp
SET IDENTITY_INSERT Table ON
 
-- Insertion des enregistrements de la table Production Tampon dans la table des archives courts termes
INSERT INTO Table(ANA_ID, JOUR, HEURE, GROUPE, VARIABLE, EVENEMENT,LIBELLE_ETAT,LIBELLE_ALARME)
SELECT      Table_ref.ANA_ID, Table_tmp.JOUR, Table_tmp.HEURE, Table_tmp.GROUPE,
                      Table_tmp.VARIABLE, Table_tmp.EVENEMENT, Table_tmp.LIBELLE_ETAT, Table_tmp.LIBELLE_ALARME
FROM         Table_ref INNER JOIN
             Table_tmp ON Table_ref.VARIABLE = Table_tmp.VARIABLE
WHERE Table_tmp.ANA_ID <= @numeromax
 
-- Purges des enregistrements de la table de Production Tampon
DELETE FROM Table_tmp  
WHERE     (ANA_ID <= @numéromax)
GO
 
***********************************
Peut-être voyez vous d'où vient l'erreur?
 
Merci par avance
Bernard

Reply

Marsh Posté le 08-06-2006 à 16:14:17    

le mieux c'est de faire un trigger ON DELETE qui fait l'insert dans l'autre table et de lancer le DELETE ;)

Reply

Marsh Posté le 09-06-2006 à 09:22:05    

Merci Orafrance mais malheureusement je ne connais pas du tout la prog en SQL...
Pourrais tu détailler un peu plus à partir du prog cité ci-dessus?
 
Merci par avance
Bernard

Reply

Marsh Posté le 10-06-2006 à 01:10:40    

désolé j'connais pas le sqlserver :/
 
essaye là : http://sqlserver.developpez.com/cours/TSQL/ :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed