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

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • RawBrahs

    RawBrahs

    28 Aralık 2010