Смекни!
smekni.com

Відстежування змін за допомогою стовпців і таблиць аудиту (стр. 2 из 2)

Використання таблиць аудиту для відновлення змінених даних

1. Визначаємо, який запис слід відновити. Для цього потрібно ідентифікувати змінний запис і дані, які його замінять.

2. Користуємось додатком UPDATE для перезапису поточних даних зміною, яку слід відновити в цій таблиці. У даному прикладі доведеться використовувати або властивість rowguid, або стовпець SpecialOf f erID у поєднанні з AuditModif iedDate як критерієм для інструкції UPDATE, як показано нижче.

USE AadventureWorks

GO

UPDATE Sales. SpecialOffer

SET Description = а. Description

,DiscountPct = а. DiscountPct

,Type = а. Type

,Category = а. Category

,StartDate = а. StartDate

,EndDate = а. EndDate

,MinQty = а. MinQty

,MaxQty = а. MaxQty

,rowguid = а. rowguid

,ModifiedDate = а. ModifiedDate

FROM Sales. SpecialOffer_Audit а

WHERE Specialoffer. SpecialOfferlD = 10

AND а. SpecialOfferlD = 10

AND а. AuditModifiedDate = '2006-04-02 22: 40: 27.513'

Якщо у нас є дані, які потребують регулярного відновлення, можна інкапсулювати приведений вище код в процедуру обслуговування, що зберігається. Проте якщо ми вирішимо реалізувати її, у нас можуть виникнути проблеми з введенням відновлених даних. Описані варіанти добре підходять для обмеженої кількості рядків в одній таблиці. Якщо ми працюємо з масовим високопродуктивним завантаженням в декількох таблицях, слід використовувати моментальні знімки, про які йшла мова в першому розділі.

Висновок

Ми навчилися створювати моментальні знімки даних. Моментальні знімки можуть ефективно використовуватися для вирішення різних завдань в процесі розробки, тестування і виробництва. Можна використовувати архівні дані для підведення підсумків і аналізу даних на певних відрізках часу. Ми також навчилися виконувати аудит змін даних і відновлювати окремі записи даних аудиту. Зберігаючи архівні дані і відстежуючи зміни в базі даних, можна забезпечити цілісність даних, використовуючи можливість відміни окремих змін, не відновлюючи всю базу даних.