SQL BİRDEN FAZLA VERİTABANINDA SORGU ÇALIŞTIRMA

Örnek verecek olursak her müşteri için ayrı bir database açtığınız bir uygulamanızın olduğunu düşünün.
Bir tablonun en çok kaydı hangi db de olduğunu merak ediyorsunuz.

DECLARE @name varchar(max)
DECLARE @count bigint

DECLARE MY_CURSOR CURSOR
  LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT name FROM sys.databases WHERE koşulu ile databaseleri filtreleyebilirsiniz

OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN   
    EXECUTE ('select count(*),'''+ @name+''' from '+ @name+'.dbo.TableName');
    FETCH NEXT FROM MY_CURSOR INTO @name
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR


Kod bloğu ile sonuca ulaşabilirsiniz.
Kendi ihtiyaçlarınıza göre kodda ufak değişiklikler yaparak istediğiniz sonuçları elde edebilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

SQL BELİRTİLEN KARAKTERLERE GÖRE ARAMA YAPMA

RASTGELE SAYI ÜRETME