none
veri tutulmayan tablolar RRS feed

  • Soru

  • Merhabalar, kullandığım erp programdaki şirket kodlarını değiştirmek istiyorum. bu şirket kodları 370 tane tabloda tutuluyor ancak bu tabloların hepsi kullanılmamakta. Bazı tablolarda veriler tutuluyor bazılarında tutulmuyor. verileri barındıran tabloları nasıl bulabilirim yardımcı olur musunuz?

      SELECT s.name
    FROM sysobjects s 
    inner join syscolumns c on s.id=c.id
    WHERE (s.xtype = 'u') and c.name='SUBE_KODU' bu sorgu sonucunda "SUBE_KODU" kolonu olan tablolara erişebiliyorum. bunların hangilerinde veriler tutuluyor bunları bulmam gerekiyor. tek tek select mi çekmem gerekiyor?  

    5 Ocak 2015 Pazartesi 08:56

Yanıtlar

  • SELECT  A.Name, SUM(B.rows) AS 'RowCount'
    FROM        sys.objects A
    INNER JOIN sys.partitions B ON A.object_id = B.object_id
    WHERE       A.type = 'U'
    GROUP BY    A.Name
    HAVING SUM(B.rows) > 0

    • Yanıt Olarak İşaretleyen Burak ORDU 8 Ocak 2015 Perşembe 16:05
    5 Ocak 2015 Pazartesi 09:33
  •  Aşağıda ki şekilde bunu yapabilirsin. Veri tutulmayan yani kayıt bulunmayan tablolar için update işlemini ne diye çalıştıracaksın pek anlamadım. Aşağıda ki örnek üzerinden yola çıkabilirsin diye düşünüyorum

     Not :  Veri tabanında bulunan tüm SUBE_KODU kolonları için çalışacaktır. Öncelikle test  db ortamında çalıştır.

    DECLARE @p1 nvarchar(50)
    DECLARE @SqlCommand nvarchar(max)
    
    DECLARE crs CURSOR FOR  SELECT  A.Name
     FROM        sys.objects A
     INNER JOIN  sys.columns c ON c.object_id = A.object_id
     WHERE       A.type = 'U' AND  c.name='SUBE_KODU'
     
     OPEN crs
     FETCH NEXT FROM crs INTO @p1
     WHILE @@FETCH_STATUS=0
     BEGIN
      SET @SqlCommand='Update '+@p1+' set SUBE_KODU=0'
      exec sp_executesql @SqlCommand 
      PRINT @p1 +' tablosunda ki SUBE_KODU güncellendi'
      FETCH NEXT FROM crs INTO @p1
     END
     CLOSE crs
     DEALLOCATE crs



    • Düzenleyen Cengiz Gür 6 Ocak 2015 Salı 11:54
    • Yanıt Olarak İşaretleyen Burak ORDU 8 Ocak 2015 Perşembe 16:05
    6 Ocak 2015 Salı 11:51

Tüm Yanıtlar

  • SELECT  A.Name, SUM(B.rows) AS 'RowCount'
    FROM        sys.objects A
    INNER JOIN sys.partitions B ON A.object_id = B.object_id
    WHERE       A.type = 'U'
    GROUP BY    A.Name
    HAVING SUM(B.rows) > 0

    • Yanıt Olarak İşaretleyen Burak ORDU 8 Ocak 2015 Perşembe 16:05
    5 Ocak 2015 Pazartesi 09:33
  • teşekkürler yardımınız için son bir sorum daha olacak SUM(B.rows) > 0 tabloların  "SUBE_KODU" kolonuna update çekmek istiyorum. örneğin  "SUBE_KODU=0" yapmak istiyorum. bu konuda yardımcı olur musunuz? 
    5 Ocak 2015 Pazartesi 10:08
  •  Aşağıda ki şekilde bunu yapabilirsin. Veri tutulmayan yani kayıt bulunmayan tablolar için update işlemini ne diye çalıştıracaksın pek anlamadım. Aşağıda ki örnek üzerinden yola çıkabilirsin diye düşünüyorum

     Not :  Veri tabanında bulunan tüm SUBE_KODU kolonları için çalışacaktır. Öncelikle test  db ortamında çalıştır.

    DECLARE @p1 nvarchar(50)
    DECLARE @SqlCommand nvarchar(max)
    
    DECLARE crs CURSOR FOR  SELECT  A.Name
     FROM        sys.objects A
     INNER JOIN  sys.columns c ON c.object_id = A.object_id
     WHERE       A.type = 'U' AND  c.name='SUBE_KODU'
     
     OPEN crs
     FETCH NEXT FROM crs INTO @p1
     WHILE @@FETCH_STATUS=0
     BEGIN
      SET @SqlCommand='Update '+@p1+' set SUBE_KODU=0'
      exec sp_executesql @SqlCommand 
      PRINT @p1 +' tablosunda ki SUBE_KODU güncellendi'
      FETCH NEXT FROM crs INTO @p1
     END
     CLOSE crs
     DEALLOCATE crs



    • Düzenleyen Cengiz Gür 6 Ocak 2015 Salı 11:54
    • Yanıt Olarak İşaretleyen Burak ORDU 8 Ocak 2015 Perşembe 16:05
    6 Ocak 2015 Salı 11:51