[MSSQL 2000] Resultset van een STP gebruiken

Pagina: 1
Acties:

  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Beste mensen ik zit met een vraag waarop ik geen antwoord kan vinden.

Is het mogelijk om de resultset (Zeg: SELECT * FROM test) van een stored procedure in een table variable te vangen?
Ik probeer het op de volgende manier maar ik blijf de melding krijgen dat mijn variabele niet gedeclareerd is:

DECLARE @lt_testtable
(
[ID] int
)

vervolgens:

EXEC @lt_testtable = [dbo].[Get_IDsByUserName] @pv_UserName

Is een dergelijke opzet mogelijk of is dit alleen mogelijk wanneer de stp een OUTPUT parameter heeft van het type table welke vervolgens gebruikt word?

Alvast bedankt

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 07:13
Je kan ipv een SP een UDF (User Defined Function) schrijven, die een TABLE resultset returned.

https://fgheysels.github.io/


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

Annie

amateur megalomaan

_Dutch-Force_ schreef op maandag 24 april 2006 @ 17:16:
Is een dergelijke opzet mogelijk of is dit alleen mogelijk wanneer de stp een OUTPUT parameter heeft van het type table welke vervolgens gebruikt word?
Nee, dit is helaas niet mogelijk. En een table variabele als output parameter is helaas ook niet mogelijk.

Normaalgesproken zou je de uitkomst van een sproc via onderstaande syntax in een table kunnen krijgen. Maar dit is niet mogelijk met een table variabele (zie ook Books Online).
SQL:
1
INSERT INTO table_name EXEC sproc


Is een temp table misschien ook een optie?
SQL:
1
2
3
4
5
6
7
CREATE TABLE #temp ([ID] INT)

INSERT INTO #temp
EXEC [dbo].[Get_IDsByUserName] @pv_UserName 

SELECT * FROM #temp
DROP TABLE #temp

[ Voor 8% gewijzigd door Annie op 24-04-2006 22:21 ]

Today's subliminal thought is:


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Je kan een functie prima een TABLE terug laten geven:
SQL:
1
2
3
4
5
6
7
CREATE FUNCTION naampje (...)
RETURNS @Result TABLE (...)
AS 
BEGIN
INSERT INTO @Result (...)
/* En de rest */
END

En aanroepen:
SQL:
1
SELECT * FROM dbo.naampje(...)

[ Voor 15% gewijzigd door _Thanatos_ op 24-04-2006 22:29 ]

日本!🎌


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

Annie

amateur megalomaan

_Thanatos_ schreef op maandag 24 april 2006 @ 22:28:
Je kan een functie prima een TABLE terug laten geven:
offtopic:
Dat had whoami toch al gezegd?
Of reageerde je op mij? In dat geval: ik had het over de sproc ;)

Today's subliminal thought is:


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Ik geef er nog ff een voorbeeldje bij, want bij een UDF is het niet zo 1-2-3 duidelijk hoe dat werkt ;)

[ Voor 45% gewijzigd door _Thanatos_ op 25-04-2006 16:23 ]

日本!🎌

Pagina: 1