Microsoft SQL Server Management Studio 2008 birden çok kullanıcı tablosunu silme


12

Veritabanını bırakmadan ve yeniden oluşturmadan veritabanındaki birden çok tabloyu silmenin kolay bir yolu var mı? Bu durumda kaldırmak için 100'den fazla var.

Tüm kullanıcı tablolarını kaldırmak ve gerekli verileri yeniden içe aktarmak için yeterince mutluyum , ancak veritabanı güvenlik ayarlarından herhangi birine dokunamıyorum.

Yanıtlar:


26

Nesne gezgininde, ilgilendiğiniz veritabanına gidin. Genişletin ve Tablolar klasörünü tıklayın. Nesne Gezgini Ayrıntılarını getirmek için F7 tuşuna basın. Silmek istediğiniz tabloları seçin ve sil tuşuna basın.


kısıtlamalar ne olacak?
Simon

2

Doğrudan T-SQL (ile DROP TABLE) yapmak için herhangi bir neden ? O zaman sadece uygun SQL komut dosyasını (silmeniz gereken tabloların bir listesine sahipseniz büyük olasılıkla otomatik olarak oluşturuyor) oluşturmanın bir örneğidir ve uzaktasınız.


0

Tsql önerildiği gibi cevap. Bırak tablo tsql çalışmak için alamadım ama bu hile yaptı.

declare @TABLE varchar(250)

declare select_cursor cursor for
select name from sysobjects where type='U'

open select_cursor

fetch next from select_cursor
into @TABLE

while @@FETCH_STATUS = 0
begin
    print 'DROP TABLE '+@TABLE

    fetch next from select_cursor
    into @TABLE
end

close select_cursor
deallocate select_cursor

Bu, ileriye dönük önemli kısıtlamaların mevcut olmadığını varsayar.
K. Brian Kelley

Bağımlılıkları tarayabilir ve biraz daha fazla çaba sarf ederek tabloları bırakabilirsiniz. <a href= stackoverflow.com/questions/352176/…> adresindeki stackoverflow gönderisinin bunu yapmak için bazı çözümleri vardır.
ConcernedOfTunbridgeWells

0

Birden çok tabloyu yineleyerek ve bunu gerçekleştirerek bırakabilirsiniz:

EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

Ancak, yabancı bir anahtar tarafından başvurulan bir tabloyu düşürmeye çalışırsanız, aşağıdaki gibi bir hata alırsınız:

Msg 3726, Level 16, State 1, Line 1
Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.

Sadece manuel olarak yapmak istiyorsanız, referansı içeren tablolar bırakılana kadar ifadeyi birkaç kez tekrarlayın (örn. Tablo1'i çalıştırmak daha sonra Tablo2 artık bırakılabilir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.