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.
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.
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
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
Yorum Gönder