나는 Sql Express 데이터베이스 서버를 사용하는 Windows 응용 프로그램을 작성했습니다.SQL Server Express 데이터베이스를 프로그래밍 방식으로 백업하려면 어떻게합니까?
응용 프로그램을 통해 프로그래밍 방식으로 데이터베이스를 백업하고 복원 할 수 있습니까?
나는 Sql Express 데이터베이스 서버를 사용하는 Windows 응용 프로그램을 작성했습니다.SQL Server Express 데이터베이스를 프로그래밍 방식으로 백업하려면 어떻게합니까?
응용 프로그램을 통해 프로그래밍 방식으로 데이터베이스를 백업하고 복원 할 수 있습니까?
응용 프로그램에서 백업 또는 복원하는 .sql 파일을 실행할 수 있습니다. 허락하신다면, 나는이 일이 스케줄 된 태스크에서 주로 이루어진 것을 보았습니다. 그러나 당신은 당신의 어플리케이션 내부에서 트리거 된 이벤트로부터 그것을 할 수 있다고 생각합니다.
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\path\\to\\backup.sql";
p.Start();
UPDATE : 당신은 SQL Management Studio를 서버에 설치되어 있지 않은 경우 의견에서 지적
바와 같이,이 작동하지 않습니다. 또는 저장 프로 시저를 호출 할 수 있습니다. 반영 할 때, 나는 왜 저장 프로 시저를 먼저 제안하지 않았는지 확신하지 못합니다. 아마도 다른 방법론이 이전 프로젝트에서 그런 식으로 구현되도록 강요 당했기 때문에 내 뇌에서 신선했기 때문일 것입니다.
당신은 실행하여 응용 프로그램 내에서 백업을 요청할 수 있습니다
@"BACKUP DATABASE [MyDBName] TO DISK = 'c:\somedir\MyDBName.bak' WITH INIT"
(ref)
를 사용하거나 SQL SMO 직접 SqlBackup() 개체. Microsoft.SqlServer.Smo.dll, Microsoft.SqlServer.SmoExtended.dll, Microsoft.SqlServer.SqlEnum.dll 및 Microsoft.SqlServer.SmoEnum :
당신은 당신의 프로젝트에 대한 참조를 추가 SQL Server Management Objects
먼저 사용할 수 있습니다 .dll.
//Connect to the server
Server srv = new Server();
//If Sql Server is not local or is a named instance you could do
//Server srv = new Server("SERVERNAME");
Database db = srv.Databases("YourDB");
//Create a backup definition
Backup backup = new Backup();
backup.Action = BackupActionType.Database;
backup.BackupSetDescription = "Full backup of Adventureworks2008R2";
backup.BackupSetName = "My app Backup";
backup.Database = "YourDB";
//Configure the backup device
BackupDeviceItem backupDevice = new BackupDeviceItem("YourDB.bak", DeviceType.File);
backup.Devices.Add(backupDevice);
//Specify wether do a full backup or not
backup.Incremental = false;
//Specify log truncation mode
backup.LogTruncation = BackupTruncateLogType.Truncate;
//Do the backùp
backup.SqlBackup(srv);
이가 관리 Studio 윈도우 응용 프로그램과 동일한 시스템에 설치되어 있다고 가정 : 데이터베이스가이 샘플을 따라 백업에 그 후
. 그럴 수는 없으므로 항상 효과가 없을 것입니다. –좋은 지적입니다. 그에 따라 내 솔루션을 수정하겠습니다. – JustLoren