İşim gereği çok fazla sayıda veritabanı ile haşır-neşir olmaktayım. Bunlardan birisi de MsSql veritabanı. En az 500 adet tablosu olan bir veritabanının tablolarının satır ve sütunlarının içerisinde çoğu kez kaybolduğum tartışmasız bir gerçek ne yazık ki. Hele bu tabloların bir kısmında veri yoksa, boşu boşuna orda durması size daha fazla zaman kaybettirir. Bu yüzden içerisinde kayıt olmayan tabloları silmek yada adını değiştirmek için T-SQL e işim düştü. Burada cursor ve loop’lardan, değişken tanımlayıp, dinamik sorgu çalıştırmaya ve sonuçları ekranda göstermeye kadar hazır, fırından yeni çıkmış kodlarımı yayınlıyorum…
DECLARE @TABLO_ADI VARCHAR(50) DECLARE @SORGU NVARCHAR(100) DECLARE @KAYIT_SAYISI int DECLARE crstab1 CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES OPEN crstab1 WHILE @@FETCH_STATUS = 0 BEGIN set @KAYIT_SAYISI=0 FETCH NEXT FROM crstab1 INTO @TABLO_ADI set @SORGU='SELECT @KAYIT_SAYISI=COUNT(*) FROM '+@TABLO_ADI execute sp_executesql @SORGU if @KAYIT_SAYISI=0 BEGIN set @SORGU='sp_rename '''+@TABLO_ADI+''',''A_'+@TABLO_ADI+'''' execute sp_executesql @SORGU END END CLOSE crstab1 DEALLOCATE crstab1
