webForumDet fria alternativet

MS SQL tabeller

Databaser & SQL

8 svar · 359 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Frågan#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?

------------------
SPiN, bjorne.w@telia.com

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,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

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?

------------------
SPiN, bjorne.w@telia.com

Medlem sedan juni 200032 967 inlägg
#4

jojomen!

alternativt exec sp_tables.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

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
%>

------------------
SPiN, bjorne.w@telia.com

[Redigerat av SPiN den 19 jan 2001]

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?

------------------
SPiN, bjorne.w@telia.com

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,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

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,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

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!

------------------
SPiN, bjorne.w@telia.com

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)