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 :

sauvegarde personnalisée sous SQL SERVER 2005


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut sauvegarde personnalisée sous SQL SERVER 2005
    Bonjour,
    je désire automatiser pour SQL server 2005, la sauvegarde d'une base de données depuis un poste client via l'exécution d'un fichier *.bat. Mais la difficulté est que le fichier de sauvegarde doit avoir le format suivant:
    nomdelabase_moisencours_annéeencours.

    Exemple: si nous sommes le 10/01/2008 et la base de données se nomme SOCRATE, on aura le fichier SOCRATE_janvier_2008

    Remarque : j'utilise l'outil SQLCMD de MS Sql server 2005

    voila le script que j'ai pu ecrire
    sqlcmd -S SERVEUR2\INSTANCE -Q "BACKUP DATABASE [SOCRATE] TO DISK = N'C:\SOCRATE'+Month(GETDATE())+year(GETDATE()) WITH NOFORMAT, NOINIT"

    malheureusement ca ne marche pas! qui peut m'aider?

    Merci d'avance, kouassi

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Pourquoi ne faites vous pas cela avec l'agent SQL Server ? C'est fait pour cela... Un petite prock stock avec une requête dynamqie fera l'affaire !

    A +

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    désolé mais je ne me connais pas trop en procédure stockée. suis un super novice. et mon souci est de créer un fichier qui permettrait à un utilisateur de lancer automatiquement cette sauvegarde par simple double click sur celui-ci quand il le veut depuis son bureau par exemple.

    Localement j'ai déja réussi à créer un tel fichier. Mais le hic est que j'enregistre la base dans le meme fichier (évidemment!) à chaque fois.

    Voici mon script (enregistré dans un fichier .bat):
    sqlcmd -Q "BACKUP DATABASE [SOCRATE] TO DISK = N'C:\SOCRATE.bak' WITH NOFORMAT, NOINIT"

    comment pourrais-je donc ecrire SOCRATE_01_2008 pour janvier 2008, puis SOCARTE_02_2008 pour fevrier 2008, .... en lieu et place de SOCRATE

    Merci d'avance.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Aller un petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    CREATE PROCEDURE P_SAUVE_BASE @DBNAME         NVARCHAR(128),       -- exemple : mabase
                                  @PATH           NVARCHAR(256), -- exemple : C:\toto\
                                  @FILENAME       NVARCHAR(32),  -- exemple : mabase
                                  @EXT_BACKUP     NVARCHAR(8),    -- exemple : BAK
                                  @DATE_FILENAME  BIT = 1,       
                                  @TIME_FILENAME  BIT = 1
    AS
    BEGIN
       IF @DBNAME IS NULL OR @PATH IS NULL
          RETURN -1;
       IF NOT EXISTS(SELECT *
                     FROM   master..sysdatabases
                     WHERE  name = @DBNAME)
          RETURN -1;
       IF @PATH = ''
          RETURN -1;
       IF COALESCE(@FILENAME, '') = '' 
          SET @FILENAME = @DBNAME;
       IF COALESCE(@EXT_BACKUP, '') = '' 
          SET @EXT_BACKUP = 'BAK'  
       DECLARE @SQL NVARCHAR(4000);
       SET @SQL = 'BACKUP DATABASE ' + @DBNAME + ' TO DISK = ''' + @PATH + @FILENAME
                  + CASE @DATE_FILENAME WHEN 1 THEN CONVERT(CHAR(10), CURRENT_TIMESTAMP, 121) END + '~'
                  +  SUBSTRING(CASE @TIME_FILENAME WHEN 1 THEN CONVERT(VARCHAR(19), CURRENT_TIMESTAMP, 121)  END, 12, 8)
                  +  @EXT_BACKUP + '''';
       EXEC(@SQL);
    END
    A lancer comme ceci (comme une requête SQL) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC P_SAUVE_BASE 'mabase', 'c:\toto\', 'masauvegarde', 'bak', 1, 1
    Vous pouvez même le faire avec SQL cmd

    A +

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Merci
    merci pour ce script. ca a marché. tres gentil de ta part.

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

Discussions similaires

  1. [Requete] probleme de synthaxe sous SQL SERVER 2005
    Par sanosuke dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/05/2007, 11h24
  2. Création d'un cube sous Sql Server 2005
    Par Valentino62100 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/04/2007, 09h42
  3. Acces concurrentiel sous sql server 2005
    Par Marco77 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/02/2007, 15h53
  4. Réponses: 1
    Dernier message: 13/12/2006, 14h18
  5. Importé un fichier excel sous SQL Server 2005
    Par summer91 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/05/2006, 10h52

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