Forum
Merhaba,
Sql server 2008 üzerinde Tiger2 kullanıyoruz, daha önce SQL 2000 server'da tableları toplu seçip silmek kolaydı. 2008'de Table'ları seçmeye için vermiyor, tek tek silmek çok zor, bunun query ile Drop veya delete ile silmek için table isimlerinin ortak bir karakter sorgusu ile silmem gerekiyor. Tablo isimlerindeki ilk 5 ve 6 karakter aynı sonrası önemli değil, benimde yapmak istediğim query ile ilk 5 ve 6 karakterine göre listelemek ve daha sonra drop etmek istiyorum. Sql ile ilgili fazla bilgim olmadığı için çözüm bulamadım. İnternet'te çok aradım bir türlü yapamadım. Bu konu ile ilgilenen, yardımcı olmak için cevap yazan herkeze şimdeden teşekkürler.
Örneğin : Tablo adı : LG_001_01_STLINE, LG_001_02_STFICHE
Merhaba,
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += '
DROP TABLE '
+ QUOTENAME(OBJECT_SCHEMA_NAME([object_id]))
+ '.' + QUOTENAME(name) + ';'
FROM sys.tables
WHERE name LIKE 'LG_001%';
PRINT @sql;
-- EXEC sp_executesql @sql;
bunun gibi bir komutla geçerli bir önek belirterek yapabilirsiniz.Eğer tablolar arasında foreign key ilişkisi varsa , ozaman teker teker silmeye ihtiyacınız olacaktır.
Saygılar,
Merhaba Selahattin bey,
öncelikle ilgilendiğin için teşekkürler. Bu sorguyu çalıştırmadan önce bir yerde takıldım. Bu tablo isimleri birden fazla Database'de mevcut, Database adları TigerDB, Tiger2DB, TigerDB_B , ben bu işlemleri her database içinde farklı çalıştıracağım, Birde sizden drop işleminden önce kontrol amaçlı aynı koşulda listeleme sorgusu göndermenizi rica ederim.
Saygılar,
Merhaba,
Bunun için kullanmanız gereken sorgu şöyle olmalıdır.
SELECT schema_name(schema_id), name FROM sys.tables WHERE name LIKE 'LG_001%';
Saygılar,
Vermiş olduğunuz sorgu çalışıyor. işlemler tamamlanıyor. Database reflesh yapıyorum. herhangi bir değişiklik yok. Drop yerine DELETE yaptım, yine sonuç alamadım. Silinmemesinin nedenini anlamadım. Use [testDB] Drop Table LG_001_01_stline ile siliyor. ama sizin gönderdiğinizde silinmiyor.
Bende database'deki tüm tabloların listesi alım. CVS olarak kaydettim. Name kısmının önüne Drop Table ekledim. Gerekli listeyi Copy Paste ile sorgu çalıştırdım. Bir uğraştırdı.
İlginin için teşekkürler.