日本では情報が少なかったので、海外のフォーラムを参考に使えるところまでまとめました。
コメントはほぼ割愛。
この情報にたどり着いてる時点で、下記のサンプルだけあれば十分かと思います。
あとは自分のプログラムに合わせてソースを変えてください。
SMOとは
https://msdn.microsoft.com/ja-jp/library/ms162151.aspx
Backupクラスの説明
https://msdn.microsoft.com/ja-jp/library/microsoft.sqlserver.management.smo.backup.aspx
SqlBackup.cs
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
//SQLの接続情報が入っているdll
using MySqlServerDatum;
public void SqlBackup(){
try{
//SQLへの接続情報
MySqlServerDatum.Info info = new MySqlServerDatum.Info();
SqlConnection sc = new SqlConnection(info.connectionString);
Server s = new Server(new ServerConnection(sc));
//ここの型への名前空間はあえてフルパスにしています。Backupでも動作しますが、念のため。
Microsoft.SqlServer.Management.Smo.Backup b = new Microsoft.SqlServer.Management.Smo.Backup();
b.Action = BackupActionType.Database;
b.Database = info.databaseName;
b.Incremental = false;
b.Initialize = true;
b.LogTruncation = BackupTruncateLogType.Truncate;
//バックアップする場所を設定
BackupDeviceItem backupItemDevice = new BackupDeviceItem("C:\\"+@"\"+info.databaseName+".bak", DeviceType.File);
b.Devices.Add(backupItemDevice);
b.SqlBackup(s);
} catch(Exception ex){
}
}