Η Express Έκδοση του SQL Server (2005,2008,2012) δεν περιέχει agent για να μπορεί να εκτελείται αυτόματα μια διαδικασία δημιουργίας αντιγράφων ασφαλείας. Με τον παρακάτω τρόπο, μπορείτε να αυτοματοποιήσετε την διαδικασία δημιουργίας αντιγράφων ασφαλείας στον SQL Server Express, διατηρώντας τον επιθυμητό αριθμό πιο πρόσφατων (ημερολογιακά) αρχείων.
declare @daystoholdbackup int
declare @databasename varchar(100)
declare @name varchar(300)
declare @backupdbfolder varchar(300)
declare @date varchar(30)
declare @deletedate varchar(10)
declare @dbsetname varchar(100)
set @daystoholdbackup = 4 -- Αριθμός ημερών πιο πρόσφατων αντιγράφων ασφαλείας
set @databasename = 'ArgusDatabaseName' -- Όνομα βάσης δεδομένων
set @backupdbfolder = 'D:\ArgusDBBackupFolder\' -- Φάκελος αποθήκευσης αντιγράφων ασφαλείας
set @deletedate = convert(varchar,getdate()- @daystoholdbackup,126)
set @date = convert(varchar,getdate(),121)
set @name = @backupdbfolder + @databasename + '_' + replace(convert(varchar,@date,121),':','.') + '.bak'
set @dbsetname = @databasename + ' - Full Database Backup'
--Backup της βάσης δεδομένων στην προσδιορισμένη διαδρομή
BACKUP DATABASE @databasename TO DISK = @name WITH NOFORMAT, INIT, NAME = @dbsetname, SKIP, NOREWIND, NOUNLOAD, STATS = 10
--Διαγραφή των αντιγράφων ασφαλείας, παλαιότερων των ημερών που έχουν ορισθεί
EXECUTE master.dbo.xp_delete_file 0,@backupdbfolder,N'bak',@deletedate,1
ή εναλλακτικά, κατεβάζετε το αρχείο από εδώ.
@daystoholdbackup - Ο αριθμός πιο πρόσφατων αντιγράφων ασφαλείας που θα διατηρούνται στον φάκελο. Τα παλιότερα θα διαγράφονται.
@databasename - Το όνομα της βάσης δεδομένων
@backupdbfolder - Η πλήρης διαδρομή του φακέλου, που πρέπει να υπάρχει στον server και στον οποίο θα αποθηκεύονται τα αντίγραφα ασφαλείας.
και αποθηκεύετε το αρχείο με ένα όνομα (π.χ. ArgusBackup.sql) σε έναν φάκελο (π.χ. C:\ArgusScript)
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S sqlservername -E -i "C:\ArgusScript\ArgusBackup.sql"