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

  • Apple

    Apple

    22 HAZİRAN 2005
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006