MS SQL tabeller

Databaser & SQL

8 svar · 376 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Trådstart#1

Hej!

Finns det något sätt att lista alla tabeller i en databas? Antingen med en SQL-sats eller ASP...
I PHP skriver man juh simpelt mysql_list_tables("databas") och lite till för utskriften...

Någon som vet något bra sätt?

Medlem sedan juni 200032 967 inlägg
#2

japp, kör den lagrade proceduren sp_tables så får du fram alla objekt du kan fråga på, tillsammans med dess typer. alltså, tabeller, procedurer och vyer.

mvh,

Medlem sedan mars 20007 896 inlägg
#3

Okey, gr8... Men jag förstår inte riktigt hur du menar.
Inte SQLquery = "sp_tables" och in i ett recordset väl? Eller?

Medlem sedan juni 200032 967 inlägg
#4

jojomen!

alternativt exec sp_tables.

Medlem sedan mars 20007 896 inlägg
#5

Okey, fan va schysst :)

Men jag får det juh tyvärr inte att funkar...
Checka koden nedan, jag vet inte riktigt hur jag ska få ut alla tabeller!

<%
set objC = Server.CreateObject("ADODB.Connection")
objC.Open "Driver={SQL Server};SERVER=min_host;UID=användare;PWD=lösenord;DATABASE=min_databas"

sSQL = "exec sp_tables"
set objRS = objC.Execute(sSQL)

For Each field in objRS.Fields
Response.Write field & "<br>"
Next

objRS.Close
set objRS = Nothing

objC.Close
set objC = Nothing
%>
Medlem sedan mars 20007 896 inlägg
#6

Ehhm.. Kanske om man lägger in en loop tänkte jag, och så lätt var det :e

Så nu får jag det att funka, tackar :)

Men jag får ut mer information än jag vill iofs, först databas, tabelltyp, tabellnamn och typ. Finns det nåt lätt sätt att ta ut bara tabellnamnet, eller måste jag splitta strängen jag får ut?

Medlem sedan juni 200032 967 inlägg
#7

du kan väl slänga in en if-sats i ditt asp-script?

if objRs(3) = "TABLE" then response.write objRs(2) & "<br>"

mvh,

Medlem sedan juni 200032 967 inlägg
#8

förresten, det är inte tabelltyp du får ut, utan ägare till objektet. denna är oftast dbo, database owner.

om du vill kolla tabeller i en annan databas är det bara att du kombinerar din fråga ovan med en use-fråga:

sSQL = "USE dbDatabas" & vbCrLf & "exec sp_tables"

mvh,

Medlem sedan mars 20007 896 inlägg
#9

Toppen!!!

Hur menar du med objrs(3)?
Jag splittade upp strängen jag fick i en array för varje loop, och om array(3) = "TABLE" skulle den skriva ut array(2) som var tabellnamnet. Men med objrs(3) och objrs(2), funkar det likadant? Alltså som arrays eller?

Tack så jättemycket för hjälpen ivf!

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)