Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Програмно отделете база данни на SQL Server, за да копирате mdf файл

Защо не направите обикновено архивиране (лесно се прави с sqlcommand) и не добавите функция за потребителите за лесно възстановяване на архивния файл с едно щракване върху бутон?

  • Можете да архивирате базата данни с sql-команди
  • Можете да отделите и компресирате архивния файл с sql-команди
  • Можете също така да отделите и ftp резервния файл автоматично към уеб сървър, ако желаете.

Какво използват крайните потребители, за да консумират вашата база данни? Програма winform? След това е лесно да направите всичко с щракване на бутон за потребителя.

Ето примерен код за това:

Declare @CustomerID int
declare @FileName nvarchar(40)
declare @ZipFileName nvarchar(40)
declare @ZipComand nvarchar(255)


set @CustomerID=20 --Get from database instead in real life application
SET @FileName='c:\backups\myback'+ cast(@customerID as nvarchar(10))+'.bak'
SET @ZipFileName='c:\backups\myback'+ cast(@customerID as nvarchar(10))+'.zip'

--Backup database northwind
backup database northwind to [email protected]

--Zip the file, I got a commanddriven zip.exe from the net somewhere.
set @ZipComand= 'zip.exe -r '[email protected]+' '[email protected]
EXEC xp_cmdshell @zipcomand,NO_output

--Execute the batfile that ftp:s the file to the server
exec xp_cmdshell 'c:\movetoftp.bat',no_output

--Done!

Трябва да имате movetoftp.bat, който съдържа това (променете ftp-сървъра на вашия):
ftp -s:ftpcommands.txt ftp.myftp.net

И вие трябва да имате ftpcommands.txt, който съдържа това (Можете да създадете този файл динамично само с правилния zip файл от sqlcommands, но ви позволявам да направите това сами):

ftpusername
ftppassword
binary
prompt n
mput c:\backups\*.zip
quit



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтрия дублирани данни от SQL таблица

  2. Изберете редове, които не са в друга таблица, заявка на SQL Server

  3. jdbc.SQLServerException:Неуспешно влизане за потребител за всеки потребител

  4. Как да проверя дали съществува ограничение в Sql сървър?

  5. Намерете данни за всяка следваща финансова година в mdx заявка