21. juli 2004 - 14:38
Der er
2 kommentarer og
2 løsninger
Selekte tabeller med to linjer
Jeg sidder med en kæmpe database hvor tabellerne blot hedder noget med fire karakterer. Jeg har derfor ingen anelse om hvilken tabel jeg leder efter, udover at jeg forventer kun at finde 2 linjer i tabellen. Kan man lave et selekt kald over tabeller med to linjer?
Beside: nogen der ved hvad en plukliste hedder på engelsk?
Hey
Først finder du alle tabeller med antal rows, og laver dit udtræk på det!
se her
/***********************/
/* CODE TAKEN FROM BIGTABLES.SQL */
/***********************/
declare @id int
declare @type character(2)
declare @pages int
declare @dbname sysname
declare @dbsize dec(15,0)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
create table #spt_space
(
objid int null,
rows int null,
reserved dec(15) null,
data dec(15) null,
indexp dec(15) null,
unused dec(15) null
)
set nocount on
declare c_tables cursor for
select id
from sysobjects
where xtype = 'U'
open c_tables
fetch next from c_tables
into @id
while @@fetch_status = 0
begin
/* Code from sp_spaceused */
insert into #spt_space (objid, reserved)
select objid = @id, sum(reserved)
from sysindexes
where indid in (0, 1, 255)
and id = @id
update #spt_space
set rows = i.rows
from sysindexes i
where i.indid < 2
and i.id = @id
and objid = @id
fetch next from c_tables
into @id
end
select
Table_Name = (select left(name,25) from sysobjects where id = objid),
rows = convert(int, rows)
from #spt_space, master.dbo.spt_values d
where d.number = 1
and d.type = 'E'
and convert(int, rows) = 2
order by reserved desc
drop table #spt_space
close c_tables
deallocate c_tables
/***********************/
/* CODE TAKEN FROM BIGTABLES.SQL */
/***********************/
Ang dit beside spm. aner det ikke..
26. januar 2005 - 17:34
#4
Det er ikke aktuelt længere, jeg går ud fra begge løsninger har sine fordele, så I deler point