W dniu 2017-07-02 o 17:50, Doxent pisze:
Klient-biuro rachunkowe tak niefortunnie kiedyś założył sobie kiedyś
Płatnika, że teraz musi to chodzić na MS SQL-u bodaj 2008 zamiast sporo
łatwiejszym w obsłudze MS Access gdzie do dyspozycji bazy mamy tylko
jeden plik łatwo dostępny. Czy jest jakaś prosta metoda backupu całej
bazy sql? Najlepiej tak aby wykonywała się co jakiś czas automatycznie?
Ewentualnie czy jest jakaś prosta metoda przeniesienia całości około 50
podmiotów do bazy w MS Access tak by się z SQL-em nie pierniczyć?
O Accesie zapomnij - zwłaszcza przy biurze rachunkowycm.
Przykład pierwszy z brzegu: co byś zrobił, gdyby klient biura
rachunkowego zażądał swojej bazy?
SQL jest w zasadzie odporny na uszkodzenia i łatwy do zarządzania.
Tylko pytanie:
to jest "pełny" MS SQL, czy SQL Express?
W pełnym są narzędzia.
W Express można użyć Management Studio lub oprogramowania podobnego firm
trzecich.
Można też ewentualnie napisać skrypt i zapuścić go przez osql.exe czy
jakiś inny sqlcmd.exe, a całość popychać automatycznie choćby przez
Harmonogram Zadań.
Przykład prostego skryptu:
PRINT CHAR(13)
PRINT '/----------------------------------------\'
PRINT '| Wykonywanie kopii bezpieczeństwa |'
PRINT '\----------------------------------------/' + CHAR(13)
-- Deklaracja zmiennych dla kopii bezpieczeństwa
DECLARE @Sciezka VARCHAR(260)
DECLARE @PlikArchiw VARCHAR(300)
-- Ścieżka dostępu do miejsca, w którym kopie bezpieczeństwa będą zapisywane
SET @Sciezka = N'N:\BACKUP\' -- Tu wpisz ścieżkę dostępu do katalogu dla
kopii baz
-- Wykonanie skryptu
--
SET @PlikArchiw = @Sciezka + @Nazwa_bazy + '_' +
REPLACE(REPLACE(REPLACE(CONVERT(CHAR(16), GETDATE(), 120), '
', ''), '-', ''), ':', '') + '.BAC'
BACKUP DATABASE @Nazwa_bazy TO DISK = @PlikArchiw WITH INIT,
NAME = 'BIURO BAZA DANYCH', SKIP, NOFORMAT, DESCRIPTION = ''
IF @@error>0
BEGIN
PRINT ''
PRINT 'Kopia bezpieczeństwa bazy ' + @Nazwa_Bazy + ' nie
wykonana, wystąpiły problemy ! ' + CONVERT (varchar(20) , GETDATE(), 120 )
PRINT ''
END
ELSE
BEGIN
RESTORE VERIFYONLY FROM DISK = @PlikArchiw WITH FILE = 1
IF @@error>0
BEGIN
PRINT ''
PRINT 'Kopia bezpieczeństwa bazy ' + @Nazwa_Bazy + '
nie wykonana, wystąpiły problemy ! ' + CONVERT (varchar(20) , GETDATE(),
120 )
PRINT ''
END
ELSE
BEGIN
PRINT ''
PRINT 'Kopia bezpieczeństwa bazy ' + @Nazwa_bazy + ' ('
+ @PlikArchiw + ')' + ' wykonana prawidłowo ! ' + CONVERT (varchar(20) ,
GETDATE(), 120 )
PRINT ''
END
END
END
--
Pozdrawiam.
Adam
|