11 Şubat 2016

Sql Foreach

Bu Örnekte Farklı databaselerde aynı sorguyu kullanmak için foreach Döngüsü Örneği Yapılmıştır.

DECLARE @i int
DECLARE @dbAdi nvarchar(100)
DECLARE @tblDB TABLE (idx smallint Primary Key IDENTITY(1,1),dbAdi nvarchar(100))

INSERT @tblDB SELECT DB_Adi FROM [DatabaselerinIcindeTanimlandigiDatabase].[dbo].[DatabaseListesi]

SET @i = 1
DECLARE @numrows int
SET @numrows = (SELECT COUNT(*) FROM @tblDB)
IF  @numrows > 0
    WHILE (@i <= (SELECT MAX(idx) FROM @tblDB))
    BEGIN
        SET @dbAdi = (SELECT dbAdi FROM @tblDB WHERE idx = @i)
DECLARE @sql_query NVARCHAR(500)
SET @sql_query=N'SELECT * FROM ['+@dbADi+'].[dbo].[OrnekTablo]'
EXEC sp_executesql  @sql_query
SET @i=@i+1
    END