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

  • campos9896

    campos9896

    24 Mart 2012
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • EvilControllers

    EvilControll

    20 Ocak 2008