Wpis z mikrobloga

Mirki mam SQL Express 2014. W nim bazę np DEMO. Od godziny próbuję utworzyć skrypt, który wrzucony w harmonogram będzie codziennie robił kopie zapasowe.
Kopie będą na dysku D:\backupSQL Chciałbym aby codziennie tworzył się plik z datą i godziną. Próbowałem już kilku gotowców, ale nic z tego.
Serwer .\SQLExpress
Muszę jeszcze włączyć jakąś opcję w SQL Management aby backup się robił?
#sql #sqlserver #informatyka #serwery
  • 11
@M4rcin:
Masz problem ze skryptem, czy z harmonogramem? Skrypt może wyglądać np. tak:
DECLARE @dbname VARCHAR(50)
DECLARE @BackupFolder varchar(255)
DECLARE @d VARCHAR(20)
DECLARE @ExpireDate datetime

set @BackupFolder = 'C:\DATA2\Backup\'
set @dbname = 'DEMO'

-- data
SELECT @d = CONVERT(VARCHAR(20),GETDATE(),112)
-- ścieżka do backupu
set @BackupPath = @BackupFolder + @dbname + '.BAK'
-- czas expiracji
SET @ExpireDate = DATEADD(hh, 1, GETDATE())

-- backup
BACKUP DATABASE @dbname TO DISK = @BackupPath WITH EXPIREDATE
@radeks11: Msg 137, Level 15, State 1, Server Marcin-KOMP\SQLEXPRESS, Line 12
Must declare the scalar variable "@BackupPath".
Msg 137, Level 15, State 2, Server Marcin-KOMP\SQLEXPRESS, Line 17
Must declare the scalar variable "@BackupPath".
Msg 319, Level 15, State 1, Server Marcin-KOMP\SQLEXPRESS, Line 17
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be
@leszekwl: Msg 137, Level 15, State 1, Server Marcin-KOMP\SQLEXPRESS, Line 6
Must declare the scalar variable "@BackupFolder".
Msg 137, Level 15, State 2, Server Marcin-KOMP\SQLEXPRESS, Line 12
Must declare the scalar variable "@BackupFolder".

Strasznie to oporne
@M4rcin:
Możesz zamienić ten kod sql na procedurę i zamiast mieć przypisaną na stałe wartość w zmiennej @dbname to przesunąć ją do parametru procedury. No trzeba zmienić fragment składający ścieżkę @BackupPath, żeby ten folder tam się zawierał.