Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Odłącz programowo bazę danych SQL Server, aby skopiować plik mdf

Dlaczego nie zrobić zwykłej kopii zapasowej (łatwej do wykonania za pomocą polecenia sqlcommand) i dodać funkcję, dzięki której użytkownicy będą mogli łatwo przywrócić plik kopii zapasowej jednym kliknięciem?

  • Możesz wykonać kopię zapasową bazy danych za pomocą poleceń sql
  • Możesz wyłuskać i spakować plik kopii zapasowej za pomocą poleceń sql
  • Możesz także wyłuskać i przesłać plik kopii zapasowej automagicznie na serwer sieciowy, jeśli chcesz.

Jakich użytkowników używają użytkownicy końcowi do korzystania z bazy danych? Program winform? Wtedy łatwo jest zrobić wszystko jednym kliknięciem przycisku dla użytkownika.

Oto przykładowy kod do tego:

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!

Musisz mieć movetoftp.bat, który zawiera to (zmień serwer ftp na swój):
ftp -s:ftpcommands.txt ftp.myftp.net

I musisz mieć plik ftpcommands.txt, który zawiera to (możesz mieć ten plik utworzony dynamicznie za pomocą odpowiedniego pliku zip przez sqlcommands, ale pozwolę ci zrobić to sam):

ftpusername
ftppassword
binarny
monit n
mput c:\backups\*.zip
zakończ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jak pobrać dane z bieżącego tygodnia tylko na serwerze SQL?

  2. Jakie są równoważne typy danych C# dla daty, godziny i przesunięcia daty i czasu w programie SQL Server?

  3. SQL Server - Nieprawidłowe znaki w nazwach parametrów

  4. konwersja typu danych varchar na typ danych datetime spowodowała otrzymanie wartości spoza zakresu

  5. Zwróć wszystkie nieobliczone kolumny z tabeli w SQL Server