Canlıdan Teste, Testten Canlıya Veri Aktarımı
Implemetasyon veya re-implemantasyon süreçlerinde yeni veritabanları oluşturmak ve test, qa ortamları yaratmak istenebilir. Bu durumlarda veri aktarımı yapılabilir.
1- Database'i Restore Edin.
Use Master;
ALTER DATABASE veritabanının_adı SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE veritabanı_adı
FROM DISK = 'Dizin(Örneğin C):\veritabanı-adı'
WITH REPLACE, MOVE 'veritabanı_adı_Data' TO 'Dizin (Örneğin E\Folder):\test_veritabanına_verecilecek_ad.mdf',
MOVE 'veritabanı_adı_Log' TO 'Dizin (Örneğin E\Folder):\test_veritabanına_verecilecek_ad.ldf'
ALTER DATABASE veritabanının-adı SET MULTI_USER
2- Şemalar Oluşturun
CREATE SCHEMA test-veritabanı-adı; (Grup-Holding Şeması)
CREATE SCHEMA test-veritabanı-adı_1; (Şirket Şeması)
CREATE SCHEMA test-veritabanı-adı_2020_1; (1. Şirketin Mali Yıl Şeması)
CREATE SCHEMA test-veritabanı-adı_product; (Ürün Şeması)
Şirket ve dönem sayısı kadar dönem ve şirket şemaları create edilebilir.
3- Kullanıcılar oluşturun. (Kullanıcı sistemde varsa tekrar oluşturmaya gerek yoktur)
CREATE LOGIN test-veritabanı-adı WITH PASSWORD = 'pasword' (Şifreyi kompleks vermeniz tavsiye edilir)
4-Test Kullanıcıları Test Şemaları İçin Yetkilendirin.
Örnek; CREATE USER [test-veritabanı-adı_product] FOR LOGIN [test-veritabanı-adı_product] WITH DEFAULT_SCHEMA=[test-veritabanı-adı_product]
ALTER ROLE [db_owner(veya belirlediğiniz rolü oluşturun)] ADD MEMBER [test-veritabanı-adı_product]
5- Her Bir Şema İçin Aşağıdaki Kod Çalıştırın.
Bu Kod Bir SQL Listesi Oluşturur. Oluşturulan bu liste kopyalanıp yeni bir ekrana yapıştırılarak çalıştırılır.
SELECT 'ALTER SCHEMA test-veritabanı-adı TRANSFER [' + SysSchemas.Name + '].[' + DbObjects.Name + '];'
FROM sys.Objects DbObjects
INNER JOIN sys.Schemas SysSchemas ON DbObjects.schema_id = SysSchemas.schema_id
WHERE SysSchemas.Name = 'test-veritabanı-adı'
AND (DbObjects.Type IN ('U', 'P', 'V','FN','TF'))
6-Dönem ve şirket viewlerini tekrar çalıştırın.