Forum

birden çok db ...
 
Bildirimler
Hepsini Temizle

birden çok db ye kayıt

5 Yazılar
2 Üyeler
0 Reactions
563 Görüntüleme
(@batuhankarahan)
Gönderiler: 10
Eminent Member
Konu başlatıcı
 

Merhaba kolay gelsin

tsql ile aynı tablolara sahip birden çok db ye aynı kaydı nasıl girebilirim.

use db1

use db2

insert into tabloadı VALUE  'şeklinde denedim olmadı  bunu nasıl yapabiliriz. Bi script oluşturabilirmiyim yada c# kodu ile yapmam mümkünmü

Teşekkürler Kolay Gelsin.. 

 
Gönderildi : 27/02/2014 19:47

(@batuhankarahan)
Gönderiler: 10
Eminent Member
Konu başlatıcı
 

Denedim bu şekilde oldu fazladan satır tekrarı yazmış olunacak ama şu an iş görecek sağ olun.

 
Gönderildi : 27/02/2014 20:09

(@caglarozenc)
Gönderiler: 247
Reputable Member
 

Farklı DB'lerin schema yapıları birbirleri ile aynı ise bir DB üzerinde insert işlemi yaptığınız tabloya bir adet trigger tanımlaması yapacak olursanız çok fazla kod yazmamış olursunuz ve her yapılan insert işlemini farklı DB'lere de taşımış olabilirsiniz.. 

 
Gönderildi : 27/02/2014 21:28

(@batuhankarahan)
Gönderiler: 10
Eminent Member
Konu başlatıcı
 

Evet schema yapıları aynı dediğiniz konuya baktım biraz net bişey bulamadım küçük bi örnek paylaşabilir misiniz Teşekkürler.

 
Gönderildi : 28/02/2014 14:40

(@caglarozenc)
Gönderiler: 247
Reputable Member
 

Tek bir DB üzerinde 3 Farklı Tablo olduğunu düşünerek bahsettiğim işlemi gerçekleştirdim. Öncelikli olarak yapıdan sizlere bahsedeyim. 

TEST isimli bir database'im var. Bunun içerisinde 3 Adet Tablo mevcut. TestTableA, TestTableB, TestTableC

Tablo yapılarında ise ;

TestTableA için : TableAId int Primary Key, TableAName varchar(50) 

TestTableB için : TableBId int Primary Key, TableAName varchar(50)

TestTableC için : TableCId int Primary Key, TableAName varchar(50) 

Şimdi burada ben  TestTableA  isimli Tablomu baz alarak bir trigger tanımlaması yaptım. Aşağıda mevcut. 

CREATE  TRIGGER TRG_InsertOnDiffTable ON TEST.[dbo].[TestTableA]
    AFTER INSERT
AS
    BEGIN
        DECLARE @GelenDeger VARCHAR(100) 
        SELECT  @GelenDeger = TableAName        FROM    INSERTED

        INSERT  INTO [TestTableB] 
( [TableAName] ) VALUES  ( @gelendeger )

         INSERT  INTO [TestTableC]( [TableAName] ) VALUES  ( @gelendeger )
    END
GO

Yukarıdaki yazdığımız Trigger'ın çalışıp çalışmadığını test etme için ise aşağıdaki kodları Kullanarak Test işlemini yaptım.

INSERT INTO TEST.[dbo].[TestTableA]([TableAName]) VALUES ('Çağlar Özenç - ' + CONVERT(VARCHAR(10),RAND()*100))
go 10

-- Insert edilen kayıtların kontrolü için select ile tabloları kontrol ediyorum.
SELECT * FROM TEST.[dbo].[TestTableA] -- Asıl Tablo
SELECT * FROM TEST.[dbo].[TestTableB] -- Aynalanan Tablo
SELECT * FROM TEST.[dbo].[TestTableC] -- Aynalanan Tablo

Bahsettiğim ve Test senaryom bu kadardı gerekli yerleri değiştirerek kendinize uygulayabilirsiniz..
 
Gönderildi : 28/02/2014 19:05

Paylaş: