Toon posts:

[SQL Server] Waar kun je variabele voor gebruiken

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

Verwijderd

Topicstarter
Halle mede tweakers,
ik ben aan het kijken wat ik allemaal met SQL Server kan doen.

Nu kan ik een een Stored Procedure (SP) variabele aan maken.

Die kan ik gebruiken voor input en output van de query.
Ik kan de variabele ook gebruiken in de Select clause als kolomnaam.

Maar...
Ik kan GEEN variabele gebruiken voor:
- de Where clause
- de tabel naam

Is het mogelijk om voor die 2 ook een variabele te gebruiken?

Alvast bedankt

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

:?

SQL:
1
Where ID > @ID

Werkt imho erg goed. En anders je query dynamisch generen dmv een SP.
NAdeel is alleen wel, met een dynamische query, een stukje performanceverlies.

[ Voor 28% gewijzigd door gorgi_19 op 06-03-2003 13:10 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Wat heb je precies geprobeerd, wat lukte er niet (voorbeelden) en wat ging er fout (foutmeldingen?)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
Ik heb nu een "query" klasse gemaakt,
die een query genereerd, uitvoert en een reader terug geeft.

Ik wil het (als het kan) zo dynamisch mogelijk:
select @velden
from @tabel
where @sorteerKolom = @zoekwaarde

Alleen krijg ik de fout dat ik de variabele @tabel moet declareren.

[vaage mode]
nu gaat het in de where clause wel goed.
eerst kreeg ik daar ook een foutmelding
nu niet meer :)
[/vaage mode]

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Wat is het nut om met deze constructie met een SP te werken? :?

1. Snelheid gaat niet op, hij moet toch iedere keer weer dynamisch opgebouwd worden. SQL Server kan hem dus niet compilen
2. Veiligheid: Gaat ook niet op. SQL Injection Attacks zijn in principe nu ook mogelijk.

[ Voor 64% gewijzigd door gorgi_19 op 06-03-2003 13:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Voor zoiets lijkt me een SP idd ook wat onnodig, hoewel je zoiets wel kunt doen in combinatie met sp_executesql (zie books online).

Ik gebruik variabelen in SP's voor uh, ja, waarvoor gebruik je in een programma een variabele? Om even iets op te slaan. Zo gebruik ik ze in SP's ook. Een ID ophalen die een aantal maal gebruikt moet worden bijvoorbeeld. Of bv als er aan een aantal voorwaarden moet worden voldaan (bepaalde waarde moet in een aantal tabellen voorkomen), dan vind ik het soms handiger werken met een variabele @isok oid, i.p.v. 1 if met een rits aan "exists(select iets from tabel...)".

Exact expert nodig?

Pagina: 1