[SQL] Kolomnaam opvragen

Pagina: 1
Acties:
  • 1.217 views sinds 30-01-2008
  • Reageer

  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
L.s.,

Ik wil de kolomnamen van een tabel opvragen. Dus niet de gegevens in de tabel, maar alleen de kolomnamen zodat ik daarna die kan wijzigen via ALTER TABLE etc.

Wat is hiervoor het juiste SQL Statement?

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 19-05 16:52

Freee!!

Trotse papa van Toon en Len!

De eenvoudigste methode is het uitvragen van de systeemtabellen, daarin staan de tabellen zelf beschreven. Hoe die systeemtabellen heten en waar ze staan verschilt van database-systeem tot database-systeem, dus daarvoor verwijs ik je naar je documentatie.

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


  • Stubby
  • Registratie: Januari 2002
  • Laatst online: 06:14
Hangt een beetje af van de SQL implementatie die je gebruikt, maar bij allemaal zit een duidelijke reference. Zo kan je bijvoorbeeld met PHP en MYsql het volgende statement gebruiken. mysql_list_fields (http://us2.php.net/manual/en/function.mysql-list-fields.php)
offtopic:
Mr Liu maakt mij weer /spuit 11

[ Voor 11% gewijzigd door Stubby op 26-11-2004 11:53 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dit is inderdaad wel een erg summiere topicstart als je niet eens aangeeft om welke database het gaat. Onder SQL Server moet je bijvoorbeeld INFORMATION_SCHEMA views gaan queryen, maar dat gaat niemand hier uitleggen als het vervolgens blijkt dat je met Oracle of zo bezig bent.

Professionele website nodig?


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 19-05 17:25

Salandur

Software Engineer

hangt een beetje van het soort database af, maar vaak kan het met show columns <tabelnaam>. iig in MySQL werkt het op die manier.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

en als je de methode van Mr. Liu niet wilt gebruiken bestaat er voor ADO de volgende constructie:

Visual Basic:
1
2
3
For Each fld In rs.Fields
       naampje =  fld.Name 
Next

kaart != map && bottel != fles
Wacht op antwoord


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

j_du_pee: dan ga je ervan uit dat ie een "SELECT *" query heeft gedaan. Over het algemeen wil je de veldnamen weten voordat je gaat queryen ;)

Professionele website nodig?


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

curry684 schreef op vrijdag 26 november 2004 @ 11:55:
j_du_pee: dan ga je ervan uit dat ie een "SELECT *" query heeft gedaan. Over het algemeen wil je de veldnamen weten voordat je gaat queryen ;)
klopt, ik gebruik bovenstaande meestal echter bij het debuggen om een recordset dmv een generieke functie in een HTML tabelletje te dumpen ;) (inc. kolomnamen dus)

kaart != map && bottel != fles
Wacht op antwoord


  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
Bedankt voor de replies tot nu toe. Het betreft een SQL-database. Ik heb het overigens nog niet voor elkaar gekregen

  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-04 19:43

Gé Brander

MS SQL Server

Heel simpel:
code:
1
select * from <TABELNAAM> where 1=0

Ik ga er hierbij van uit dat je de tabelnaam natuurlijk al weet.

[ Voor 39% gewijzigd door Gé Brander op 26-11-2004 12:56 ]

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
Damn, en daar ben ik al zo lang naar op zoek. Thnx! Het werkt!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dr_oetker schreef op vrijdag 26 november 2004 @ 12:51:
Bedankt voor de replies tot nu toe. Het betreft een SQL-database. Ik heb het overigens nog niet voor elkaar gekregen
Goh nu beperk je het alleen nog maar tot SQL Server, Oracle, dBase, Paradox, MySQL, PostgreSQL en alle 300 andere SQL-databases in deze wereld 8)7
c70070540 schreef op vrijdag 26 november 2004 @ 12:55:
Heel simpel:
code:
1
select * from <TABELNAAM> where 1=0

Ik ga er hierbij van uit dat je de tabelnaam natuurlijk al weet.
Is natuurlijk een ranzige workaround van heb-ik-me-jou-daar :X

De netste manier is gewoon de meta-data opvragen van de tabel, maar dat is dus DBMS-specific.

Professionele website nodig?


  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
@ curry een SQL Server

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Dus moet je de INFORMATION_SCHEMA views gebruiken. Open ze eens en je zult wel zien welke je moet gebruiken. (ik dacht INFORMATION_SCHEMA.COLUMNS)

code:
1
2
3
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME ='bla'

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

bedoel je "een SQL server" of bedoel je daadwerkelijk: We gebruiken "MS SQL Server"?
* Creepy hoopt op het laatste..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

Creepy schreef op vrijdag 26 november 2004 @ 13:41:
[...]

bedoel je "een SQL server" of bedoel je daadwerkelijk: We gebruiken "MS SQL Server"?
* Creepy hoopt op het laatste..
komkom, het wordt nu wel een beetje van de slakken en het zout hoor ;)

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

j_du_pee schreef op vrijdag 26 november 2004 @ 13:43:
[...]

komkom, het wordt nu wel een beetje van de slakken en het zout hoor ;)
inderdaad.. Want het kan dan misschien nog wel een MS SQL Server 1.0 zijn o.i.d....

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Mja, Oracle is ook een SQL server ...

Dat krijg je met Microsoft die zelfstandig naamwoorden als productnaam gebruikt :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

kenneth schreef op vrijdag 26 november 2004 @ 14:28:
Mja, Oracle is ook een SQL server ...

Dat krijg je met Microsoft die zelfstandig naamwoorden als productnaam gebruikt :)
Niet om nog dieper te mierenneuken hoor, maar Oracle is ook een zelfstandig naamwoord 8)7

En voor de mensen die daarvoor al gemierenneuk vonden: een topic als dit is tijdsversplilling van de omstanders als je niet helder aangeeft wat je aan het doen en proberen bent. Zelfs de versie is relevant ja iruoy, daar in SQL Server 6.5 (dat verdomd veel gebruikt wordt nog) de INFORMATION_SCHEMA views geloof ik niet aanwezig zijn.

Professionele website nodig?


Verwijderd

Aaaah, lang leve vrijdagmiddagen !

Ik vraag me ineens af hoe Oracle ertoe gekomen is hun DBMS "Oracle" te noemen. Orakels zijn dingen die onduidelijke uitspraken doen zodat ieder ze naar eigen goeddunken interpreteren kan. Van organisaties die Oracle kunnen betalen verwacht ik dat deze niet om dit soort uitspraken verledegen zouden zitten ;) .

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

offtopic maar goed;
Where did the word Oracle originate from?
The word Oracle means:

Prophecy or prediction; answer to a question believed to come from the gods; a statement believed to be infallible and authoritative; a shrine at which these answers are given

There is, however, more to the word Oracle: used for the name of the database engine, and then later for the company itself. Larry Ellison and Bob Miner were working on a consulting project for the CIA (Central Intelligence Agency in USA) where the CIA wanted to use this new SQL language that IBM had written a white paper about. The code name for the project was Oracle (the CIA saw this as the system to give all answers to all questions or something such ;-).

The project eventually died (of sorts) but Larry and Bob saw the opportunity to take what they had started and market it. So they used that project's codename of Oracle to name their new RDBMS engine. Funny thing is, that one of Oracle's first customers was the CIA...
bron

Uiteraard ben ik het er overigens mee eens dat er een versienummer en een de naam van het DBMS genoemd had moeten worden; SQL server is in mijn ogen wel redelijk gangbaar, net als dat ik bij Windows niet MS Windows ga schrijven :)

kaart != map && bottel != fles
Wacht op antwoord


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

offtopic:
Voor de spreekwoordelijke pietje preciezen: het DBMS van Oracle heet ook geen Oracle, maar "Oracle Database", voorheen ook wel "Oracle Server".

Who is John Galt?


Verwijderd

Bij Oracle denk ik altijd onwillekeurig aan het volgende:
Once King Croesus of Lydia in ancient Greece wanted to invade Persia. He consulted the oracle in Delphi in that matter, trying to find out the likelihood of success. The oracle told him that if he crossed the river, a great kingdom would be destroyed.
The king confidently set out to war. However, the kingdom he destroyed was his own.

http://oaks.nvg.org/eg3ra1.html
Statistiekjes, halve waarheden, wishful thinking en selffulfilling prophecies _/-\o_ .

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

[/offtopic] :P

[ Voor 96% gewijzigd door curry684 op 10-08-2023 15:55 ]

Professionele website nodig?

Pagina: 1