Bei der Verwendung von sp_executesql mit temp-Tabellen ist die empfohlene Methode zur Verwendung von globalen temporären Tabellen

Wir haben die folgende Struktur mit dynamischen sql mit Variablen und temporäre Tabellen:

DECLARE @X AS INT = 1;
DECLARE @Y AS INT = 1;
DECLARE @Z AS INT = 1;

DECLARE @S AS NVARCHAR(500) = 
           N' SELECT @P+@Q+@R AS ANSWER INTO #X'

EXEC sp_executesql 
    @stmt   = @S,
    @params = N'@P AS INT,@Q AS INT,@R AS INT',
    @P  = @X,
    @Q  = @Y,
    @R  = @Z; 

SELECT (ANSWER + 1) AS FINALANSWER
FROM #X

Die temporäre Tabelle #x erzeugt wird, in den Anwendungsbereich von sp_executesql so dann mit, dass Daten im nachfolgenden code ist nicht möglich.

Ist es ein standard-Ansatz, den ich nehmen muss um diese Arbeit zu machen oder sollte ich auf Globale temporäre Tabellen?

  • sommarskog.se/share_data.html
  • ok danke Mitch ich benutze diese Website eine Menge - zweite auf der MSDN-Website. Ich hätte nicht gedacht, dass es als "Austausch von Daten zwischen gespeicherten Prozeduren" aber ich denke, dass ist GENAU das, was es ist - nur eine der procs ist eine integrierte sql-server-proc. Da beide procs nicht selbst erstellt und da sp_executesql erstellt von MS bin ich Frage mich, ob es ein standard empfohlen Ansatz.
InformationsquelleAutor whytheq | 2014-01-09
Schreibe einen Kommentar