BEGIN
-- بستن رکورد قبلی
UPDATE DW.DimCustomer
SET EndDate = @ChangeDate, IsCurrent = 0
WHERE CustomerID = @CustID AND IsCurrent = 1
-- ایجاد رکورد جدید
INSERT INTO DW.DimCustomer (
CustomerID, CustomerName, City,
EffectiveDate, EndDate, IsCurrent, SourceOperation
)
VALUES (@CustID, @Name, @City, @ChangeDate, '9999-12-31', 1, 'UPDATE')
END
FETCH NEXT FROM change_cursor INTO @Op, @CustID, @Name, @City, @ChangeDate
END
CLOSE change_cursor
DEALLOCATE change_cursor
END
`
## ✅ خلاصه جواب:
بله، مقادیر قبل و بعد رو میتونی در DW نشون بدی!
1. CDC فقط تغییرات رو شناسایی میکنه
2. تو باید یه ETL process بنویسی که این تغییرات رو بخونه
3. منطق SCD Type 2 رو در DW پیادهسازی کنی
4. این کار با SP، SSIS، Python یا هر ابزار ETL دیگهای قابل انجامه