SORU
23 NİSAN 2009, PERŞEMBE


Nasıl birden fazla tablo İÇ BİRLEŞİM SQL server kullanarak silebilirim

MySQL sözdizimi kullanabilirsiniz

DELETE t1,t2 
FROM table1 AS t1 
INNER JOIN table2 t2 ...
INNER JOIN table3 t3 ...

Nasıl SQL Server içinde aynı şeyi yapıyorum?

CEVAP
1 Mayıs 2009, Cuma


"Bu örnek. sahte tablo silinmiş yararlanabilirsiniz Gibi bir şey

begin transaction;

   declare @deletedIds table ( id int );

   delete t1
   output deleted.id into @deletedIds
   from table1 t1
    join table2 t2
      on t2.id = t1.id
    join table3 t3
      on t3.id = t2.id;

   delete t2
   from table2 t2
    join @deletedIds d
      on d.id = t2.id;

   delete t3
   from table3 t3 ...

commit transaction;

Belli ki bir 'çıkış silinmiş' ikinci bir şey, üçüncü bir tablo için katılmak için gerekli? olarak sil yapabilirsin.

Bir yan not olarak, aynı zamanda eklenen yapabilirsin*. ınsert deyim, ve her ikisi de takılı.* ve silinen*. bir update deyimi.

DÜZENLEME: Ayrıca, tablo1 üzerinde bir tetikleyici table2 3 silme eklemeyi düşündün mü? İçinde örtülü bir hareket olacak, ve aynı zamanda "eklenmiş. olacak<>" ve "silinmiş. em" sahte-tablolar kullanılabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • Perihelion

    Perihelion

    23 NİSAN 2008