Táblák és sorok

Pár napja ki kellett kukáznom egy adatbázisból az üres táblákat. Erre sokféle lehetőség van, én egy kicsit továbblépve kilistáztam az összes táblát az általa tartalmazott sorok számával.

create table #rows (tname sysname, tlines int)
exec sp_msforeachtable 'declare @i int; select @i = count(*) from ?; insert into #rows values(''?'',@i);'
select * from #rows order by tlines desc
drop table #rows

Ehhez a kiváló undocumented sp_msforeachtable tárolt eljárást használtam, mely UNDOCUMENTED és UNSUPPORTED, de király, és mindenki használja. Persze az MS is, hisz azért csinálták. Működése igen egyszerű: a paraméterként megadott stringet lefuttatja az SQL szerver, minden tábla nevét behelyettesítve a ? helyére. Tulajdonképpen egy kurzort látunk, ami exec-eli a megadott paramétert. Ugyanilyen van adatbázisokra is, sp_msforeachdb néven, pont ugyanígy működik.

Leave a comment