declare @strSQL varchar(max)declare @viewName varchar(255)declare listViews cursor forselect name from sys.viewsopen listViewsfetch next from listViews into @viewNamewhile @@fetch_status = 0 begin set @strSQL = 'select top 1 * from ' + @viewName exec (@strSQL) fetch next from listViews into @viewName end close listViewsdeallocate listViews
EXEC sp_MSforeachtable'SELECT TOP 1 * FROM ?'
SET NOCOUNT ON;GOIF OBJECT_ID('tempdb..#views') IS NOT NULL DROP TABLE #views;;WITH views AS( SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS n, TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS)SELECT n, table_nameINTO #viewsFROM views;GO--SELECT * FROM #viewsDECLARE @n int=1, @tbl varchar(100), @sql varchar(400)='SELECT TOP 1 * FROM ';WHILE @n<=(SELECT MAX(n) FROM #views)BEGIN SELECT @tbl=(SELECT TABLE_NAME FROM #views WHERE n=@n); EXEC('SELECT '''+@tbl+''' AS [THE TABLE]'); EXEC(@sql+@tbl); SELECT @n=@n+1ENDDROP TABLE #views;
exec sp_MSforeachview 'select top 1 from ?