SORU
6 EKİM 2008, PAZARTESİ


SQL Server iki tablo eklemek mümkün aynı zamanda.

Benim veritabanında üç Tablo Object_Table, Data_Table Link_Table denilen içerir. Bağlantı tablo sadece iki sütun, nesne bir kayıt kimliği ve veri kaydının bir kimlik içerir.

Data_Table ve farklı belirli bir nesne kimliği için Link_Table içine nesne kimlik ve Ekle ilgili kayıtları verilen bağlantılı olduğu DATA_TABLE verileri kopyalamak istiyorum.

Benolabilirbir tabloya değişken ve her yineleme için iki ekler yaparak döngü seçerek bunu.

Bu en iyi yolu yapmaktır?

Editİstediğim önlemek için bir döngü için iki nedeni, ilk ben tembel ve bir döngü/temp tablo gerektirir, daha fazla kod, daha fazla kod anlamına gelir daha fazla yerlerde bir hata ve ikinci nedeni, bir endişe hakkında performans.

Bir Ekle tüm verileri ama nasıl bağlantı tablosundaki her kayıt yeni bir kimliği olan yeni veri kayıtları bağlamak için alabilirim? kopyalayabilirim.

CEVAP
6 EKİM 2008, PAZARTESİ


BiraçıklamaHayır.

BirişlemEvet

BEGIN TRANSACTION
   DECLARE @DataID int;
   INSERT INTO DataTable (Column1 ...) VALUES (....);
   SELECT @DataID = scope_identity();
   INSERT INTO LinkTable VALUES (@ObjectID, @DataID);
COMMIT

İyi haber şu yukarıdaki kodu da olması sağlanıratomeğer bir ifade olsaydı , ve bir istemciden sunucuya gönderilen tek bir işlev çağrısında bir sql string ile uygulama. Ayrıca bir tablo için bir tetikleyici tek bir ekleme etkisi elde etmek için uygulanır. Ancak, sonuçta yine iki ifade ve muhtemelen tetikleyicisi çalıştırmak istemiyorumherEkle.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • listedabive

    listedabive

    30 Ocak 2007