Backup bazy MS SQL Server Express – komenda zewnętrzna, harmonogram zadań Windows
Artykuł w budowie
--zmienna do przechowania nazwy pliku
--do którego wykonujemy backup
DECLARE @filename VARCHAR(100)
--ustawienie nazwy pliku
--z zamianą dwukropków na kropki
--przykładowa utworzona nazwa:
--Sprzedaz_2014-datetime-2014-11-16 07.12.38.bak
SET @filename = N'C:\ sql_backups\ Sprzedaz_2014-datetime-'
+ SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 1, 13) + '.'
+ SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 15, 2) + '.'
+ SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 18, 2) + '.bak'
--polecenie backupu bazy danych Sprzedaz_2014
--do pliku @filename
BACKUP DATABASE Sprzedaz_2014
TO DISK = @filename
WITH NOFORMAT, INIT,
NAME = N'Sprzedaz_2014-full database backup',
SKIP,
NOREWIND,
NOUNLOAD,
STATS = 10
--deklaracja zmiennej @bak_set_id
DECLARE @bak_set_id AS INT
--ustawienie wartości zmiennej @bak_set_id
--polecenie SELECT pobiera ostatni wpis
--z systemowej bazy danych msdb z tabeli backupset
--position i database_name są polami tej tabeli
SELECT @bak_set_id = position
FROM msdb..backupset
WHERE database_name=N'Sprzedaz_2014' AND backup_set_id =
(
SELECT MAX(backup_set_id)
FROM msdb..backupset
WHERE database_name=N'Sprzedaz_2014'
)
--jeżeli wartość zmiennej @bak_set_id jest null
--oznacza to niepowodzenie backupu
IF @bak_set_id IS NULL
BEGIN
RAISERROR(N'Niepowodzenie weryfikacji backupu ''Sprzedaz_2014''', 16, 1)
END
--weryfikacja możliwości odtworzenia bazy z pliku
RESTORE VERIFYONLY
FROM DISK = @filename
WITH FILE = @bak_set_id,
NOUNLOAD,
NOREWIND
Polecenie w pliku wsadowym Backup_Command.bat
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" –S AP-HOST\SQLEXPRESS -i "C:\SQL_Backups\Bak_Sprzedaz_2014.sql"
Utworzenie zadania w harmonogramie
Składnia funkcji SQL Server CONVERT() do wyświetlania daty i czasu
CONVERT(VARCHAR(dlugosc), GETDATE(), kod_ formatu)
Oznaczenia rezultatu w tabeli
||= Oznaczenia || Znacznie (słownie)
|| yy, yyyy || rok
|| mmm, mm | miesiące
|| dd | dni
|| hh | godziny
|| nn | minuty
|| ss | sekundy
|| zzz | milisekundy
|| AM, PM | przed południem, po południu
Formaty w zależności od parametru kod_formatu
Format yy | Format yyyy | Rezultat |
---|---|---|
0 lub 100 | mmm dd yyyy hh:nn AM (lub PM) | |
1 | 101 | mm/dd/yy |
2 | 102 | yy.mm.dd |
3 | 103 | dd/mm/yy |
4 | 104 | dd.mm.yy |
5 | 105 | dd-mm-yy |
6 | 106 | dd mmm yy |
7 | 107 | mmm dd, yy |
8 | 108 | hh:mm:ss |
9 lub 109 | mmm dd yyyy hh:nn:ss:zzz AM (lub PM) | |
10 | 110 | mm-dd-yy |
11 | 111 | yy/mm/dd |
12 | 112 | yymmdd |
13 or 113 | dd mmm yyyy hh:nn:ss:zzz (24h) | |
14 | 114 | hh:nn:ss:zzz (24h) |
20 lub 120 | yyyy-mm-dd hh:nn:ss (24h) | |
21 lub 121 | yyyy-mm-dd hh:nn:ss.zzz (24h) | |
126 | yyyy-mm-ddThh:nn:ss.zzz (bez spacji) | |
130 | dd mmm yyyy hh:nn:ss:zzz AM | |
131 | dd/mm/yy hh:nn:ss:zzz AM |
Materiały uzupełniające
w3schools, Funkcja CONVERT w SQL Server, (materiał po angielsku)