Inga stora.
Det blir skillnad i anropet och hur man hämtar värdet. Prestandaskillnader? Vet inte, men har svårt att tro att det finns några som motiverar det ena framför det andra.
5 svar · 395 visningar · startad av doggelito
har kollat runt lite men inte hittat nått vettigt.
vad är skillnaden på att använda en output-parameter mot att använda en select som retur?
Create Procedure minSP
@blabla int output
AS
...
set @blabla = 12345
Create Procedure minSP
@blabla int
AS
...
select 12345
Inga stora.
Det blir skillnad i anropet och hur man hämtar värdet. Prestandaskillnader? Vet inte, men har svårt att tro att det finns några som motiverar det ena framför det andra.
Oki!
Finns det nått som talar för det ena eller det andra om vad man bör använda om man ser framåt mot MS SQL Server 2005?
E inte själva frågan lite felställd?.
en out parameter returnerar en datatyp. Men en select kan returnera ett helt resultset.
Nöff skrev:
E inte själva frågan lite felställd?.
Njao, kanske det. Men det jag menade med frågan gällde bara ett värde i selecten, därav paralellen till en output.
doggelito skrev:
Oki!
Finns det nått som talar för det ena eller det andra om vad man bör använda om man ser framåt mot MS SQL Server 2005?
Nej, inte direkt.
Det finns en skillnad, och den består främst i hur värdena transporteras. Om man returnerar ett resultatset så skulle detta kunna innebära att det krävs en server-side cursor plus ett klientinstantierat objekt för att hantera informationen, medan parametervarianten blir betydligt snålare. I praktiken blir det dock mest hårklyverier, för även om man skulle få parameter-versionen att bli 100 gånger snabbare än resultatset-versionen så berör detta oftast en typ av operationer (returnera 1 värde) som utgör en minimal del av en större operation. "Många bäckar små..." säger en del, men det är ointressant när floder av annan kod flyter förbi.
Som jag ser det finns det två bra argument till att använda OUTPUT-parametrar.