IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Requette Sql Backup Avec parametre dans un Dts


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Requette Sql Backup Avec parametre dans un Dts
    Bonjour, J'ai besoin de faire un backup à un instant T d'une base et ce de façon ponctuel. En effet mensuellement il y a cloture irreversible de certaines informations et on veux pouvoir revenir en arrière au cas où. L'action étant ponctuel et pas forcement toujours le même jour, j'ai créer un bete dts avec comme requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BACKUP DATABASE mabase TO DISK = 'repdest/nombase.bkp'
    pour que celui qui fait la cloture puisse backuper la base tout seul comme un grand.

    Cependant voyant gros comme un maison les problème de type ecrasement de base, et autre je voudrais nommer les bases en fonction du mois et faire quelques controles (sauvegarde déjà faite, envoie de mail, ... )

    Voulant nommer les .bkp dynamiquement j'ai fait une tache active x qui récupère la date du jour la traite et géner un nom de fichier convenable je le stock dans un variable globale de mon dts et là je bloque impossible de générer la requette sql qui prend en charge la variable globale

    Une requette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BACKUP DATABASE mabase TO DISK = ?
    me génère une erreur de lot :
    "Source de l'erreur : Microsoft OLE DB Provider for SQL Server
    Description de l'erreur : Erreur de syntaxe ou violation d'accès"
    lorsque j'essaye d'assigner les Paramètres

    Quelqu'un aurait-il une idée sur ce que j'ai oublié ?

    Ah je tourne sur sql 2000

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Pourquoi ne pas faire un simple job avec du code sql que vous lancez à votre guise ? Les lots DTS sont plus adaptés aux transferts de données selon moi.

    Voici un exemple à adapter en fonction de vos besoins (La date du jour est ici traitée et constitue une partie du fichier de sauvegarde "2008129_nomSauvegarde.bak")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DECLARE @fileName VARCHAR(50)
    SET @filenName = CAST(YEAR(GETDATE()) AS CHAR(4) + CAST(MONTH(GETDATE()) AS VARCHAR(2)) + CAST(DAY(GETDATE()) AS VARCHAR(2) + 'nomVotreBackup.bak'
     
    EXEC(N'BACKUP DATABASE nomVotreDatabase TO DISK = ''VotrePathDeSauvegarde' + @filename + '''')

  3. #3
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Le but c'est qu'une personne tierce puisse faire ses backup et ses restore de manière simplifié donc de ne pas avoir les outils client sql server d'installé sur le poste (modulo les dll de dtsrun) Donc si je peux executer un job a distance avec juste un raccourcie sur un script ou un batch alors oui je peux partir sur un job.

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Le mieux (et plus simple) est de passer par votre solution de départ via un lot DTS avec une tâche d'éxecution sql et le code que je vous ai joint (en adaptant bien sûr à vos besoins) .

    Ceci vous permettra de supprimer votre activeX pour la gestion de vos dates.

  5. #5
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    L'active x me permet de vérifier si le chemin est accessible, si le fichier n'existe pas et autre, il affiche des message de confirmation à l'utilisateur et autre.

    En me renseignant auprès d'un collègue sur le pourquoi du comment ca passait pas avec mon parametre on a régler le problème en passant par une table temporaire car visiblement le parametre ne fonctionne que sur des requette type select ou insert.

    Ca fait un peu plus d'étape dans le workflow mais ca fonctionne.

    Merci en tout cas pour les réponses apportées

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/06/2008, 20h29
  2. requete SQL: where avec parametre variable
    Par dracula2000 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/05/2006, 22h46
  3. [8i][PL/SQL] erreur avec lpad dans une fonction
    Par sali dans le forum Oracle
    Réponses: 3
    Dernier message: 16/03/2006, 06h22
  4. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50
  5. Requete Action avec parametre dans formulaire
    Par marie10 dans le forum IHM
    Réponses: 2
    Dernier message: 08/02/2006, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo