virturel
Messages postés16Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention14 décembre 2015
-
21 janv. 2009 à 00:06
jbi13
Messages postés2Date d'inscriptionlundi 22 février 2010StatutMembreDernière intervention22 février 2010
-
22 févr. 2010 à 12:00
Bonjour,
Je souhaite pouvoir créer un raccourci sur le bureau pour lancer une sauvegarde de base de données MS SQL Server.
Pourquoi ? Pour des utilisateurs non informaticiens et réfractaires aux outils MS SQL ! Un double clic sur un raccourci et ça sauvegarde la base complete (pour des sauvegardes ponctuelles avant un traitement par exemple : cloture comptable, facturation...)
Est ce possible ? Si oui comment ?
Merci
Philippe
A voir également:
Sauvegarde sql
Sauvegarde base de données sql server - Meilleures réponses
SQLpro
Messages postés35Date d'inscriptionsamedi 17 novembre 2007StatutMembreDernière intervention 8 février 20121 21 janv. 2009 à 16:34
Vous pouvez mettre dans un .bat la commande suivante :
sqlcmd -E -S??? -Q"BACKUP DATABASE ??? TO DISK = '???'"
ou :
le premier ??? est a remplacer par le nom de votre serveur
le second ??? par le nom de la base
le 3e ??? par un chemin et un nom de fichier de sauvegarde.
A +
Frédéric BROUARD, Spécialiste modélisation, bases de données, optimisation, langage SQL.
SQLpro
Messages postés35Date d'inscriptionsamedi 17 novembre 2007StatutMembreDernière intervention 8 février 20121 26 janv. 2009 à 12:59
Bonjour,
pour la commande OS n'étant pas un spécialiste je ne spuis vous aider. Postez dans un forum spécialisé.
pour une procedure c'est plus simple. Exemple :
CREATE PROCEDURE P_SAVE_DB
@DB_NAME SYSNAME, -- nom de la base de données
@PATH NVARCHAR(128) -- chemin vers repertoire de sauvegarde, doit contenir le \ en fin de chaîne
AS
Et comme j'ai un peu galérer sur le fichier .bat au niveau de la syntaxe, je vous le livre ci dessous (en rouge, le texte à adapter) :
sqlcmd –E –SMonServeur –Q"exec MaBase.dbo.P_SAVE_DB ‘MaBase’, ‘C:\Saves\’ "
virturel
Messages postés16Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention14 décembre 2015 23 janv. 2009 à 14:12
Super !! Merci beaucoup.
Question subsidiaire : comment faire pour que le nom du fichier de sauvegarde (le 3e ???) soit la date et heure du jour ? Par exemple : SvgCompta20090123-14h15.bak
Merci encore
Philippe
Vous n’avez pas trouvé la réponse que vous recherchez ?
SQLpro
Messages postés35Date d'inscriptionsamedi 17 novembre 2007StatutMembreDernière intervention 8 février 20121 25 janv. 2009 à 18:32
Plusieurs solutions :
1) réalisez une procédure stockée dans la base de données qui fait la sauvegarde de la sorte et appelez là toujours par SQLcmd. Exemple si la procédure s'apelle MaBase.dbo.P_SAVE :
sqlcmd -E -S??? -Q"EXEC MaBase.dbo.P_SAVE"
2) à l'aide de scripting du langage de commande de winodws dans un fichier .bat.
virturel
Messages postés16Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention14 décembre 2015 26 janv. 2009 à 00:06
Merci encore une fois.
Pouvez vous me préciser les commandes du fichier bat pour nommer le fichier avec la date et heure du jour ?
Car j'ai trouvé quelques commandes du type : set fichier = SvgCompta%date%%time% ...
Mais je ne peux pas écrire le nom du fichier avec des "/". Bref, je tourne un peu en rond car je ne connais pas bien les différentes commandes dos. En SQL je vais pas mal chercher aussi...
Alors je me suis dit qu'il vaut mieux un qui sait que moi qui cherche !! :-))
jbi13
Messages postés2Date d'inscriptionlundi 22 février 2010StatutMembreDernière intervention22 février 2010 22 févr. 2010 à 10:10
Bonjour,
Je viens d'utiliser votre conversation mais je bloque sur le lancement de la procédure stockée dans le .bat
J'ai le message suivant :
C:\Users\jerome>sqlcmd -E -SPAIE -Q"exec P_CIMAT.dbo.P_SAVE_DB'P_CIMAT','\\PAIE\BACKUP\'"
Message 105, niveau 15, état 1, serveur PAIE, ligne 1
Ouvrez les guillemets après la chaîne de caractères '\\PAIE\BACKUP\SAUVEGARDE_P_CIMAT_20100222_100333.657.BAK'.
Message 102, niveau 15, état 1, serveur PAIE, ligne 1
Syntaxe incorrecte vers '\\PAIE\BACKUP\SAUVEGARDE_P_CIMAT_20100222_100333.657.BAK'.
jbi13
Messages postés2Date d'inscriptionlundi 22 février 2010StatutMembreDernière intervention22 février 2010 22 févr. 2010 à 12:00
Pour info,
Configuration : SQL 2008 SP1
voici la procédure stockée :
USE [P_CIMAT]
GO
/****** Object: StoredProcedure [dbo].[P_SAVE_DB] Script Date: 02/22/2010 11:41:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_SAVE_DB]
@DB_NAME SYSNAME,
@PATH NVARCHAR(128)
AS