SORU
7 AĞUSTOS 2008, PERŞEMBE


Tüm tabloları olan isimler belirli bir dize ile başlamak bırak

Bir komut belirli bir dize ile başlayan tüm tabloları bırakmak istiyorum. Bu dinamik sql INFORMATION_SCHEMA tablo ile yapılabilir eminim.

Herkesin bir yazısı vardır, ya da bir hızlı hamile olabilir, lütfen bunu yayınlayın.

Kimse kendimi düşündüm önce bir cevap mesaj ise, benim çözüm göndeririz.

CEVAP
7 AĞUSTOS 2008, PERŞEMBE


Eğer veritabanında birden fazla ise orada sorgu sahibi içerecek şekilde değiştirmek gerekebilir.

declare @cmd varchar(4000)
declare cmds cursor for 
select 'drop table ['   Table_Name   ']'
from INFORMATION_SCHEMA.TABLES
where Table_Name like 'prefix%'

open cmds
while 1=1
begin
    fetch cmds into @cmd
    if @@fetch_status != 0 break
    exec(@cmd)
end
close cmds;
deallocate cmds

Bu komut plus çalıştırmak oluşturmak için iki adımlı bir yaklaşım kullanarak daha temiz. Ama senaryo nesil bir avantaj aslında. önce çalıştırılması için neler tamamını inceleme fırsatı verir.

Eğer üretim veritabanı karşı bunu yapacak olsaydım, mümkün olduğunca dikkatli olacağımı biliyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavidParody

    DavidParody

    17 EKİM 2009
  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • jocc talking shit

    jocc talking

    6 NİSAN 2007