Avatar billede farouche Nybegynder
21. juli 2005 - 18:43 Der er 4 kommentarer og
1 løsning

Anvende resultat af Exec SP

Jeg har behov for at bruge resultatet af en Exec af en Stored Procedure i en anden stored procedure lignende :

Select navn from (Exec HentBrugerData)

Kan det på nogen måde lade sig gøre i SQL Server 2000 uden at skulle oprette en temporær tabel som gir for meget performance overhead.
Avatar billede kvinther Nybegynder
22. juli 2005 - 09:18 #1
Er du sikker på at du vil bruge en procedure til at hente brugerdata, og ikke f.eks. et view? Så vidt jeg ved returnerer man oftest bare haltelsværdier (return-codes) fra procedurer.
Avatar billede farouche Nybegynder
22. juli 2005 - 09:28 #2
Jeps.

Vi bruger Altid stored procedures, da det teoretisk set gir en bedre performance, og da vi på den måde slipper for at gi brugere rettigheder på tabel niveau.

En stored procedure returnerer et resultset som kan anvendes på lige for med resultatet af et Select i en almindelig query.

Men åbenbart er der så lige den begrænsning at det ikke kan anvendes i subquiries.
Avatar billede Stjannersen Praktikant
25. juli 2005 - 14:44 #3
Kig på User-defined functions, som med lidt god vilje er at betragte som stored procedures, som er i stand til at returnere tabel-objekter.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/architec/8_ar_da_50mr.asp
------klippet eksempel-------
This is an example of a statement that creates a function in the Northwind database that will return a table:

CREATE FUNCTION LargeOrderShippers ( @FreightParm money )
RETURNS @OrderShipperTab TABLE
  (
    ShipperID    int,
    ShipperName  nvarchar(80),
    OrderID      int,
    ShippedDate  datetime,
    Freight      money
  )
AS
BEGIN
  INSERT @OrderShipperTab
        SELECT S.ShipperID, S.CompanyName,
              O.OrderID, O.ShippedDate, O.Freight
        FROM Shippers AS S
            INNER JOIN Orders AS O ON (S.ShipperID = O.ShipVia)
        WHERE O.Freight > @FreightParm
  RETURN
END

In this function, the local return variable name is @OrderShipperTab. Statements in the function build the table result returned by the function by inserting rows into the variable @OrderShipperTab. External statements invoke the function to reference the table returned by the function:

SELECT *
FROM LargeOrderShippers( $500 )
------Slut klip------
Avatar billede farouche Nybegynder
26. juli 2005 - 10:14 #4
Hej stjannersen

Dette vil sådanset virke fint og kan kaldes fra en anden store procedure MEN jeg vil meget gerne dynamisk kunne kalde sp'er, og det ser ikke ud til at man kan få lov til at lave en exec fra en function, så jeg er desværre lidt lige vidt. :(
Avatar billede farouche Nybegynder
18. april 2010 - 22:18 #5
Luk
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