Parametri dinamici in una stored procedure

giovedì 05 agosto 2010 - 12.50
Tag Elenco Tags  SQL Server 2008

fcalvinio Profilo | Newbie

Ciao a tutti,
vorrei sapere se è possibile passare dei valori dinamici ad una store procedure:
mi spiego meglio ho una stored procedure che ha un cursore. Nel fetch di tale cursore tiro fuori delle occorenze di una tabella che ha 10 colonne che si differenziano nel nome solo da un numero (esempio w_cod_1, w_cod_2 e così fino a 10) memorizzandole in delle variabili. Per ogni occorrenza devo chiamare 10 volte un'altra stored procedure passandogli ogni volta un valore diverso cioè la prima volta @w_cod_1, la seconda volta @w_cod_2.
Si può fare richiamando la sp in un ciclo passandogli il valore dinamicamente e non fare dieci chiamate passandogli i 10 valori?
Io mi sono ricavato il nome da passare (p.e. w_cod_1 che è un varchar(20)) ma come faccio a passare alla mia sp il valore della variabile?
Grazie,
Francesco

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>Si può fare richiamando la sp in un ciclo passandogli il valore
>dinamicamente e non fare dieci chiamate passandogli i 10 valori?
puoi pensare di creare una tabella temporanea in cui vai a mettere i valori delle variabili che devi passara alla stored interna.
Poi, ciclando sulla tabella, passi il valore indicato alla chiamata della sp.
In generale però, ti serve un altro cursore, e sinceramente non mi piace molto proporti questo tipo di soluzione. Nel senso che non mi piace mai tanto mettere una logica molto complessa (e di business) sul database. Se questo db viene interrogato tramite applicazioni o servizi, non sarebbe male creare la logica di chiamata al loro interno e non direttamente sul database server..

>Grazie,
di nulla!

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5