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

  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008
  • Vsauce

    Vsauce

    30 Temmuz 2007
  • whatever

    whatever

    30 EYLÜL 2005