Avatar billede zaknafein Praktikant
18. november 2002 - 12:22 Der er 6 kommentarer og
3 løsninger

Stored procedures

Hvordan afvikler jeg en stored procedure, fra en sql sætning??

Ikke i ASP men i en sql?
Avatar billede cbp Nybegynder
18. november 2002 - 12:32 #1
Exec myStoredProcedure myValue1, myValue2

eller

Exec myStoredProcedure myParamater1 = myValue1, myParameter2 = myValue2
Avatar billede zaknafein Praktikant
18. november 2002 - 12:56 #2
Men hvordan får jeg resultatet tilbage??

Altså
select * from exec sp parameter

virker jo ikke, men det er det jeg vil ha den til.
Avatar billede zaknafein Praktikant
18. november 2002 - 13:13 #3
HMm jeg kan se at der er problemer i forbindelse med CURSORS. Når der bruges cursors, kan jeg ikke lave en dynamisk sql sætning i min sp!
Avatar billede cbp Nybegynder
18. november 2002 - 13:51 #4
Det kan man desværre slet ikke i SQL Server. Hvis du skal bruge resultatet er du nødt til at bruge en user defined function i stedet for en stored procedure.
Avatar billede bennytordrup Nybegynder
18. november 2002 - 14:35 #5
Prøv følgende script

<SQL>
create table #Test
(
  Felt1 datatype,
  Felt2 datatype
)

insert #Test (Felt1, Felt2)
exec <Stored Procedure, der returenerer to felter med de angivne datatyper>

select *
from #Test

drop table #Test
</SQL>

Du skal kende output fra den stored procedure, du vil have fat i og oprette en temp tabel til at opsamle det i.

Jeg har prøvet ovenstående på en SQL Server 2000.

Der kan sagtens være parametre på den stored proceudre, der kaldes.
Avatar billede bennytordrup Nybegynder
18. november 2002 - 14:35 #6
Det er faktisk beskrevet i Books Online, om noget skjult under beskrivelsen af INSERT.
Avatar billede rasmusmoller Nybegynder
23. november 2002 - 21:03 #7
Under antagelse af at du ønsker retur-værdien fra sproc'en, kan du bruge følgende:

declare @i int
exec @i = mystoredprocedure  --  @i indeholder nu retur-værdi
print @i
Avatar billede fmadse1 Nybegynder
24. november 2002 - 15:36 #8
Parameteren i den stored proc skal være erklæret som en output.
Altså
Create mystoredproc
(
@MyVar varchar(10) output
)
as
begin
Select @MyVar = 'HEP'
end
go

Så kan du kalde den med:
exec MystoredProc
  @MyVar = @DenNyeParameter
end

Iøvrigt understøtter sql2000 cursorparametre, så man kan få overført en cursor fra en procedure
Avatar billede fmadse1 Nybegynder
24. november 2002 - 15:37 #9
(Der er lige en 'end' der flagrer i bunden ovenover, se bort fra den)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester