Toon posts:

[MSSQL] vervanging colomnaam door var

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende Query:

declare @indi varchar(10), @spouce varchar(10), @other_spouce varchar(10)

set @indi = '2'
set @spouce = 'HUSB'
set @other_spouce = 'WIFE'

select @other_spouce from fam_record
where @spouce like cast(@indi as int)

Deze werkt niet, om de een of andere reden worden de colomnamen niet opgeroepen.

Het is de bedoeling dat het zo werkt:

select HUSB from fam_record
where WIFE like cast(@indi as int)

Wat dus duidelijk wel werkt :'(

Ik heb de halve help booksonline doorgekeken, maar niets gevonden. }) En ben nu ruim een dag aan het rotzooien |:(

  • Siliakus
  • Registratie: November 2000
  • Laatst online: 22-08 14:41
set @spouce = 'HUSB'
set @other_spouce = 'WIFE'

in combinatie met

select @other_spouce from fam_record
where @spouce like cast(@indi as int)

wordt

select WIFE from fam_record
where HUSB like cast(@indi as int)

en niet

select HUSB from fam_record
where WIFE like cast(@indi as int)

HUSB en WIFE omgedraaid?

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:48

pistole

Frutter

wat jij wilt kan i.i.g. niet op die manier, want
SQL:
1
select @spouce from tabel

wordt
SQL:
1
select 'HUSB' from tabel

en resulteert dus in 'HUSB', ongeacht welke tabel je op queriet

[ Voor 24% gewijzigd door pistole op 30-05-2003 09:20 ]

Ik frut, dus ik epibreer


Verwijderd

Topicstarter
Sorry voor mijn 'typo' het is gewoon de bedoeling dat de variabelen worden ingevuld.
Dit blijkt niet te werken. gorgi_19 heeft mij in de goede richting gestuurd "Dynamic SQL", nu nog het vinden van het antwoord. De fout zit dus in het feit dat de variabelen niet worden ingevuld en de query niet uitgevoerd wordt.

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:48

pistole

Frutter

Ik denk dat je eerst je query moet opbouwen (dus je query in een variabele zetten) en die vervolgens met EXEC uitvoeren.

Ik frut, dus ik epibreer


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

pistole schreef op 30 May 2003 @ 09:42:
Ik denk dat je eerst je query moet opbouwen (dus je query in een variabele zetten) en die vervolgens met EXEC uitvoeren.
BOL raadt aan om de sp_executesql sys proc te gebruiken voor dynamische queries.
offtopic:
over hypocrisie gesproken: MS gebruikt te pas en te onpas EXEC in eigen sys procs ;)

Today's subliminal thought is:

Pagina: 1