PDA

Vollständige Version anzeigen : Feldnamen auslesen


FrankyZ
03.04.2002, 14:02
Hallo!

Ich möchte gerne per SQL die Feldnamen einer tabelle auslesen.
Ist dies mit SQL möglich und wenn ja wie.

Ich weiß das das in Access das TableDef_Objekt dafür zuständig ist aber auf das kann ich nicht zugreifen weil ich per PHP und Access auf eine MSSQl Datenbank zugreife.

Und in PHP kann ich ja schließlich schlecht das VBA Object benutzen... ;-)

Ebenfalls wäre da die "Lösung" die Feldnamen in eine extra Tabelle zu schreiben und dann aus zu lesen aber das möcht eich nur machen, wenn es wirklich keine andere Möglichkeit mehr gibt.


Ich bedanke mich schon mal im Vorraus!

Schönen sonnigen Tag noch & grüße aus München!

Frank

sekoe
03.04.2002, 17:02
Hi,
habe hier nur eine Lösung f. SQL-Server 2000. Das geht nur über die Systemtabellen

-- Alle Felder einer Tabelle anzeigen
declare @objname nvarchar(776)
declare @numtypes nvarchar(80)
declare @objid int
declare @sysobj_type char(2)

-- Hier den Tabellennamen einstzen
SET @objname = 'Tableblablabla'

select @objid = id, @sysobj_type = xtype from sysobjects where id = object_id(@objname)

if @sysobj_type in ('S ','U ','V ','TF','IF')
begin
select @numtypes = N'tinyint,smallint,decimal,int,real,money,float,numeric,smallmoney'
select 'Column_name' = name, 'Type' = type_name(xusertype)
from syscolumns where id = @objid and number = 0 order by colid
end

FrankyZ
04.04.2002, 09:11
Danke Sekoe!

Ich habe es zwar noch nicht getestet aber ich werde es mal ausprobieren.

Eine weitere Möglichkeit wäre
select col_name( object_id("maschine"), 1 )


Grüße aus München!
Frank

FrankyZ
04.04.2002, 09:58
Super es hat funktioniert!

Nochmals Danke.


PS. Das "N" bei 'tinyint,smallint,decimal,int,real,money,float,numeric,smallmoney' sollte raus.
Wohl alles von Hand geschrieben? <img src="graemlins/grins.gif" border="0" alt="[grins]" />