- Posted by ehosca on September 28, 2007
using System;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
namespace SmartDbBackup
{
internal class Program
{
private static void Main(string[] args)
{
ServerConnection serverConnection = new ServerConnection("{SERVERNAME}");
Server server = new Server(serverConnection);
server.ConnectionContext.StatementTimeout = 0;
foreach (Database database in server.Databases)
{
if (!database.IsSystemObject)
{
Backup backup = new Backup();
backup.Database = database.Name;
backup.Devices.AddDevice(@"\\{FILESERVER}\{FILESHARE}\"
+ database.Name
+ DateTime.Now.ToString("yyyyMMdd_hhmmss")
+ ".bak",
DeviceType.File);
backup.PercentCompleteNotification = 5;
/* wire up events */
backup.PercentComplete += backup_PercentComplete;
backup.Complete += backup_Complete;
backup.Initialize = true;
backup.Incremental = false;
backup.SqlBackup(server);
//Console.Write(backup.Script(server));
}
}
Console.ReadLine();
}
private static void backup_Complete(object sender, ServerMessageEventArgs e)
{
Console.WriteLine("Backup complete.");
}
private static void backup_PercentComplete(object sender, PercentCompleteEventArgs e)
{
Console.WriteLine("Percent complete: {0}", e.Percent);
}
}
}