[SQL] meerdere parameters Stored procedure

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

  • ibizadesire
  • Registratie: Juli 2003
  • Laatst online: 18-05 20:17
Ik ben al even op zoek naar een oplossing om een stored procedure (asp.NET msSQL) aan te roepen met meerdere parameters.
op zich geen probleem als alle paramters een waarde hebben:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE procedure [dbo].[sp_SelectOrderHeader]
@date smalldatetime,
@p1 varchar(3),
@p2 varchar(3),
@p3 varchar(3),
@p4 varchar(3),
@p5 varchar(3)
as
begin

SELECT * FROM tabel 
WHERE (date > @date)  AND (param1 = @p1) AND (param2 = @p2) AND (param3 = @p3) AND (param4 = @p4) AND (param5 = @p5)

end
go


maar als ik nu deze SP wil aanroepen zodat deze gewoon een select doet met enkel parameter 1 dan kan ik param 2 en 3 niet de waarde NULL geven want dan krijg ik niet de juiste recordset terug. Eigenlijk zouden de parameters dus optioneel moeten zijn

Heb al google en de search hier geprobeerd, maar geraak niet verder.
Als je maar 2 of 3 parameters hebt kan je met if (param1 is null) enzo alle mogelijkheden gaan overlopen, maar in mijn huidige situtatie zou ik tot 5 params moeten meegeven.

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 08-02 14:55

dominic

will code for food

@p2 varchar(3) = null,
@p3 varchar(3) = null,
..

etc etc

Download my music on SoundCloud


  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
Je kan eens naar ISNULL of COALESCE (T-SQL functies) kijken.

https://fgheysels.github.io/


  • klinz
  • Registratie: Maart 2002
  • Laatst online: 21-05 09:01

klinz

weet van NIETS

Een niet-performante oplossing:
code:
1
2
3
where (@p1 is null or @p1 = param1)
and     (@p2 is null or @p2 = param2)
...

  • ReLight
  • Registratie: Augustus 2001
  • Laatst online: 21-05 21:09

ReLight

echo("What Now ? !")

Geloof dat je expliciet optioneel moet verklaren. In de included mssql manual staat dit wel beschreven.

Mijn zoon & dochter zijn de toekomst, de rest is tijdsvermaak. Home assistant & & Nibe S2125-12/SMO-S40, RMU-s40 & Tado - Volvo C40 ER, SE


  • ibizadesire
  • Registratie: Juli 2003
  • Laatst online: 18-05 20:17
COALESCE was hetgeen ik nodig had.
Dank allemaal !!!! _/-\o_

  • whoami
  • Registratie: December 2000
  • Laatst online: 23-05 16:52
Je moet wel beseffen dat die COALESCE je query behoorlijk kan vertragen. Kijk eens of het niet beter is als je je SQL Statement dynamisch opbouwt in je code mbhv parametrized queries, en het dan naar de DB doorstuurt.

https://fgheysels.github.io/


  • ibizadesire
  • Registratie: Juli 2003
  • Laatst online: 18-05 20:17
whoami schreef op 23 augustus 2004 @ 16:55:
Je moet wel beseffen dat die COALESCE je query behoorlijk kan vertragen. Kijk eens of het niet beter is als je je SQL Statement dynamisch opbouwt in je code mbhv parametrized queries, en het dan naar de DB doorstuurt.
Ik zie geen vertraging in de query. Als dit zich toch gaat voordoen ga ik er zeker eens naar kijken. Ik dacht dat SPs de beste oplossing waren mbt caching, maar blijkbaar parametrized queries ook.

thx !
Pagina: 1