[Microsoft SQL] uitvoer uit tabel in SP

Pagina: 1
Acties:

  • Ronald_stage
  • Registratie: Januari 2002
  • Laatst online: 12-05 07:13

Ronald_stage

wat kan je hier nog zeggen

Topicstarter
In een acces DB heb ik nu een functie die update qeury's runt die in een tabel zijn opgeslagen

[pseudo code]
bla = select update_SQL from tabblmetSQLstatements
do until bla.eof
Db.ExecuteQuery update_SQL
bla.moveNext
loop
[/pseudo code]

kan ik dit ook in een StoredProcedure?
het gemak is dat ik een tabel bij kan werken en gewoon een functie aan kan roepen
die het (dan server side) allemaal uitvoerd.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Misschien eens kijken naar User defined Functions? Deze kun je inline aanroepen.

Overigens is het ook het overwegen waard om eens te kijken of je de update niet als een gewoon update statement kunt schrijven. In een update kun je ook meerdere tabellen opnemen.

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


  • Ronald_stage
  • Registratie: Januari 2002
  • Laatst online: 12-05 07:13

Ronald_stage

wat kan je hier nog zeggen

Topicstarter
Het gaat om een lijst met update SQL's, maar ik ga is kijken naar User defined Functions

Verwijderd

Ja het kan:
  1. gebruik een cursor voor de loop
  2. exec(@sJeUpdateSQL)
succes

UDF is not the way

[ Voor 10% gewijzigd door Verwijderd op 23-02-2005 17:09 ]


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

curry684

left part of the evil twins

Verwijderd schreef op woensdag 23 februari 2005 @ 17:08:
Ja het kan:
  1. gebruik een cursor voor de loop
  2. exec(@sJeUpdateSQL)
En dat kun je zelf ook weer in een SP doen :)

Vaak zijn cursors overbodig overigens, dus ik ben wel benieuwd naar het concrete probleem van de TS (zonder cursors werken scheelt aanzienlijk in snelheid :X )

Professionele website nodig?


  • Ronald_stage
  • Registratie: Januari 2002
  • Laatst online: 12-05 07:13

Ronald_stage

wat kan je hier nog zeggen

Topicstarter
Het Cursor werken was me al door een vriend van me half uit gelegd.
het draaide eerst in acces, nu op een SQL server. (ik kan access maar
SQL/SP wat minder)
ik dacht met het server side brengen van de statement veel tijd te kunnen
winnen (access is heel traag) dus als het kan wil ik het gaan
proberen. stel dat er geroepen werd no way dat je een stukje sql uit een tabel
kan uitvoeren dan had ik het niet geprobeerd..

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ja het kan wel, je bedoelt neem ik aan dat je queries in een veld in de database hebt staan en dat deze uitgevoerd moeten worden?

Het is echter vrij ranzig en ook niet het meest efficiente gebruik van SQL Server. Je kunt er wel wat winst mee boeken qua snelheid, omdat er geen resultaten en ook geen query tekst over de lijn gaat, behalve het aanzetten van de SP en het terugontvangen van OK of errors. De vraag blijft natuurlijk waarom je queries wilt draaien die zijn opgeslagen in een tabel?

[ Voor 7% gewijzigd door bigbeng op 23-02-2005 17:30 ]


Verwijderd

curry684 schreef op woensdag 23 februari 2005 @ 17:09:
[...]

En dat kun je zelf ook weer in een SP doen :)

Vaak zijn cursors overbodig overigens, dus ik ben wel benieuwd naar het concrete probleem van de TS (zonder cursors werken scheelt aanzienlijk in snelheid :X )
Geen id of cursor overbodig is. Weet niet hoe die update_sql tabel van TS eruit ziet.
als je door een tabel moet lopen dan ontkom je niet aan een cursor. Als je de updates kan flaggen van "uitgevoerd", dan kan je een simpel loopje maken die net zolang als nodig doorgaat.

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Kun je die queries in je tabel niet gewoon omzetten naar losse sp's? En dan een sp of job maken die bepaalde queries moet uitvoeren met EXEC(sp_naam)

[ Voor 40% gewijzigd door stp_4 op 23-02-2005 17:34 ]

stp - PSN ID: stp_4


  • Ronald_stage
  • Registratie: Januari 2002
  • Laatst online: 12-05 07:13

Ronald_stage

wat kan je hier nog zeggen

Topicstarter
ik kan zo alle update statements onder elkaar in 1 sp zetten, das geen probleem.
maar om ze dan aan te passen moet ik de sp aanpassen. vandaar het voordeel
dat de statements in een tabel opgeslagen zijn. Die kan ik simpel bijwerken.

  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
Maar nu vind ik het een beetje wazig worden. Welke dingen wil je aanpassen in queries dan? Kun je dan niet met variabelen gaan werken?

stp - PSN ID: stp_4


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
edit: ik ben een sukkel.

Update kan helemaal niet in een UDF.

Ik blijf er wel bij dat het handig zou zijn dat de TS even laat zien hoe z'n update logica in elkaar zit. Misschien kan het wel meet een gewone update query

[ Voor 79% gewijzigd door P_de_B op 23-02-2005 19:42 ]

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


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Je kan in acces ook gebruik maken van Pass-thru query's. Je maakt dan een gewone query definitie aan, en stelt hier een ODBC source op in (je connectie naar SQL). Vervolgens kun je hier in code de SQL code op aanpassen, en laten runnen. De query wordt dan niet in access maar binnen MSSQL uitgevoerd. De pass-thru kun je dan gewoon met queryexecute of met openrecordset laten draaien.

Ik heb zo geen code als voorbeeld maar kan dit wel voor je opzoeken.
Pagina: 1