[SQLServer] hoe SP executen in SELECT query

Pagina: 1
Acties:

  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Iemand enig idee hoe een StoredProc uit te voeren binnen een SELECT query?

Misschien zit ik wel te moeilijk te denken, maar ik heb een sproc geschreven met daarin een aardige lap business logic. Nu is het zo dat ik binnen een select query deze sproc wil uitvoeren voor elk record. Nu zou ik het zonde vinden om deze lap niet te hergebruiken, dus wie heeft een idee?

Even het voorbeeld uitgewerkt: ik wil mbv een sproc een aantal producten uit een boodschappenlijstje toevoegen aan een shopping basket. Om de producten toe te voegen heb ik dus de sproc geschreven. Deze moet worden aangeroepen voor elk product in het boodschappenlijstje.

Een file op de A12 is nooit grappig...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:04

mulder

ik spuug op het trottoir

EXEC ? Of moet dit ook weer binnen een SP?

oogjes open, snaveltjes dicht


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Inderdaad ja, binnen SP
Volgens mijn logica zou het iets moeten zijn van
SELECT ProductID, Quantity FROM ShoppingListDetails
WHERE ShoppingListID = 1

De uitkomsten hiervan moet ie dan stuk voor stuk met een sproc in de tabal ShoppingCart mikken... En idd, dit geheel komt weer binnen een sproc te hangen.

Een file op de A12 is nooit grappig...


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:04

mulder

ik spuug op het trottoir

Dan zou het evt met EXEC dus moeten kunnen, m'n vorige post is een beetje vreemd btw...

Ben zelf geen expert op SP gebied, maar volgens moet het dus wel kunnen.

oogjes open, snaveltjes dicht


Verwijderd

MrHighStone schreef op 29 November 2002 @ 18:42:
Iemand enig idee hoe een StoredProc uit te voeren binnen een SELECT query?
Kan niet. Check the syntaxis van het SELECT statement. Je moet hiervoor FUNCTION gebruiken. Die kan eventueel wel een stored proc aanroepen. FUNCTION is ingebouwd vanaf SQLServer 2000 (en dus MSDE 2000)

Het helpt echt als je de EBNF syntaxis van de T-SQL statements doorneemt in Books Online wanneer je een error krijgt in een query gerelateerd aan syntax, zoals jij kreeg.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:04

mulder

ik spuug op het trottoir

Don Facundo schreef op 29 november 2002 @ 19:04:
Ben zelf geen expert op SP gebied, maar volgens moet het dus wel kunnen.
O-) :X kan dus niet...

[ Voor 4% gewijzigd door mulder op 29-11-2002 19:12 . Reden: het kan dus niet.. ]

oogjes open, snaveltjes dicht


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Daarom zei ik, misschien denk ik wel te moeilijk. Maar het kan toch ook niet de bedoeling zijn dat dit niet mogelijk is? Ik wil 'gewoon' de output van een query de input van een sproc laten zijn. Als de query een record zou teruggeven, is het geen punt, maar met meerdere records moet het toch ook kunnen?
Ik heb alleen geen idee hoe de syntax zou moeten luiden. En van de SQL books online word ik nou ook niet echt veel wijzer... :?

Een file op de A12 is nooit grappig...


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

Annie

amateur megalomaan

Zoals Otis al aangeeft kan je een PROC niet opnemen in een query (tenminste niet zoals jij dat wil). Daarvoor gebruik je dus een FUNCTION. Andere optie zou kunnen zijn om een CURSOR (index: DECLARE CURSOR) te gebruiken (maar deze worden over het algemeen afgeraden vanwege performance).

En voor deze begrippen kan je toch het best de books online doornemen. Veel duidelijker (met voorbeelden) kan ik het niet voor je uitleggen.

[ Voor 5% gewijzigd door Annie op 29-11-2002 19:25 ]

Today's subliminal thought is:


Verwijderd

Voor don facundo: iedereen maakt deze fout een keer. Ook ondergetekende :P (en ja, ook ik heb uuuuuuuren besteed aan allerlei methodieken uit te denken om het toch mogelijk te maken (zat op sqlserver 7, dus moest wel :) ) het is ook erg onlogisch waarom het niet kan, maar het is nadelig voor de optimizer schijnt.... tja.

  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
okido, thnx, ga ik het op een andere manier proberen... zie het volgende threadje alweer tegemoet :)

Een file op de A12 is nooit grappig...


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Annie, je hebt inderdaad gelijk, op ExpertsExchange kwam ik deze post tegen:
http://www.experts-exchan...QL_Server/Q_20410893.html

Een file op de A12 is nooit grappig...

Pagina: 1