Selecteren op alle databases met een bepaalde tabelnaam

Status
Niet open voor verdere reacties.

markyy16

Gebruiker
Lid geworden
5 mrt 2012
Berichten
48
Heren,

Ik heb een vraagje over SQL Server 2005.

Ik wil een lijst waar geselecteerd wordt op

alle databases waar een tabelnaam voorkomt en niet null is.

Wellicht dat een van jullie mij hierbij kan helpen?

Met vriendelijke groet,

Mark
 
En wat precies mag niet Null zijn? Een tabelnaam moet zowiezo een karater hebben; je mag geen tabellen maken zonder naam. Hetzelfde geldt voor een databasenaam.
Kortom: erg onduidelijke vraag :)
 
Het gaat om de records in de tabel. Als een tabel één of meerdere records bevat moet hij deze selecteren.

PS. Sorry voor de wat wazige uitleg krijg het niet anders omschreven.
 
En wat wil je nu precies? Een lijst van alle tabellen in alle databases die in je SQL omgeving zitten? Heb je bijvoorbeeld rechten op al die databases? Ik weet overigens niet eens of het kan, want het is niet echt een gebruikelijk probleem. Je kunt uiteraard met Count records tellen in een tabel, en daar heb je dan een uitkomst van. Maar volgens mij kun je daar geen recordset van maken. Daar zul je toch iets voor moeten programmeren, vermoed ik.
 
Vul bij de 2 plekken waar tabelnaam staat, de naam van de tabel in.. is dit ongeveer wat je wilt?
Het kan waarschijnlijk makkelijker, maar zo moet het wel lukken :)

create table #tempschema
( sdDatabase varchar(50)
, cnt varchar(200)
)

INSERT INTO #tempschema
EXECUTE master.sys.sp_MSforeachdb 'USE [?];
if exists(select * from sys.tables where Name = N''tabelnaam'')
select ''?'', count(*) as cnt from tabelnaam having count(*) > 0'

select distinct * from #tempschema
drop table #tempschema


Groetjes,

Geerttim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan