Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2012, 11h27   #1
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
Par défaut Sauvegarde d'une table sur base de temps

Bonjour ,
J'aimerai transférer des données d'une table de "travail" vers une table identique "backup" sur base de temps . Une à 8H00,16H00,et 00H00.
Quelqu'un pourrait il me mettre sur la bonne voie . Trigger ou autre ? Merci.
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h20   #2
Membre du Club
 
Inscription : octobre 2007
Messages : 160
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 160
Points : 46
Points : 46
Est ce que tu veux dire une tache planifié qui va alimenter dans des tranches horaires la table back up?
si c'est le cas tu peux crée un nouveau job et le faire exécuter en tant que tache planifié en exécutant la requête ou la procédure suivante:

Code :
1
2
3
4
 
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tablebackup ]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tablebackup ]
SELECT * INTO tablebackup FROM TABLE
j'espère que ça vous aidera
nabilfaouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h26   #3
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
J'ai créer un jobs à 8 12 et 00 HH .
J'aimerai par exemple prendre pour le job de 8H00 tout les records de la table travail dont l'horodatage est inférieur à 6H00 et les insérer dans la table backup sans avoir de doublons.
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h45   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Beaucoup plus rapide serait de vider la table et de faire une capture binaire des données, puis réinjection.
1) TRUNCATE TABLE ... (base de destination)
2) export avec bcp.exe out en format natif de la table en question
3) import avec bcp.exe in du fichier créé en 2)

bcp.exe est l'utilitaire en ligne de commande d'import / export de SQL Server.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 15h52   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Citation:
Envoyé par SQLpro Voir le message
1) TRUNCATE TABLE ... (base de destination)
Ça permettrait aussi de conserver les éventuelles indexes, stats et contraintes qu'un radical drop table.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 16h14   #6
Invité de passage
 
Inscription : juillet 2010
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 23
Points : 3
Points : 3
Je ne gère pas la table travail (je ne peux pas faire de suppression)
J'ai créer un jobs à 8 12 et 00 HH .
J'aimerai par exemple prendre pour le job de 8H00 tout les records de la table travail dont l'horodatage est inférieur à 6H00 et les insérer dans la table backup sans avoir
manas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 22h42   #7
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 470
Points : 2 470
Envoyer un message via Yahoo à zinzineti
Attention aux colonnes auto-incrément (IDENTITY) si elles existent !
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 16h11   #8
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Citation:
Envoyé par zinzineti Voir le message
Attention aux colonnes auto-incrément (IDENTITY) si elles existent !
Que veux-tu dire, je ne vois pas le problème ?
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 14h40   #9
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 674
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 674
Points : 8 741
Points : 8 741
Si la table d'archive contient elle aussi une table dont la colonne a la propriété de compteur auto-incrémenté, l'INSERT dans la d'archive ne marchera pas.
Deux solutions :

- ne pas spécifier la colonne dans le SELECT, très simple
- spécifier SET IDENTITY_INSERT maTable ON avant l'INSERT, puis SET IDENTITY_INSERT maTable OFF après l'INSERT, mais je trouve ça moche

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 17h26   #10
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Citation:
Envoyé par elsuket Voir le message
Si la table d'archive contient elle aussi une table dont la colonne a la propriété de compteur auto-incrémenté, l'INSERT dans la d'archive ne marchera pas.
Deux solutions :

- ne pas spécifier la colonne dans le SELECT, très simple
- spécifier SET IDENTITY_INSERT maTable ON avant l'INSERT, puis SET IDENTITY_INSERT maTable OFF après l'INSERT, mais je trouve ça moche
Ok, je comprends le point
Mais comme il faisait un drop table puis un select * into ... la colonne dans la table de destination n'est plus auto-incrémentée dans ce cas.
Mais bon, il vaut mieux être prudent, vous avez raison sur ce point.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h21   #11
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 615
Points : 1 615
Vous pouvez aussi penser à utiliser l'operateur switch.

Générez une partition vide a votre table de destination dans laquelle vous switchez votre table de travail et ensuite vous re-effectuer un merge de la partition et du reste de la table et ca pousse vos donnéees très rapidement.
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h54   #12
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
On ne connait pas ici la volumétrie associée à votre table de travail et celle d'historique. L'activité est-elle fortement transactionnelle sur cette table ? etc ...

Il y a en effet beaucoup de solutions à votre problème. Maintenant il faut choisir celle qui correspondra à votre besoin. Pas besoin de sortir l'artillerie lourde si cela n'est pas nécessaire.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h59.


 
 
 
 
Partenaires

Hébergement Web