SET Lokale Variable in SQL auf einem 2000 SERVER
SET @local_variable akzeptiert keine Variablen bei Ausführung von EXEC
Es geht um eine gespeicherte Prozedur in einem MS-Access Projekt.
Nun soll Spalte_y nach dem jeweils in @<Variable> beim Aufruf übergebenen Wert abgefragt werden
Syntax ? EXEC bei SET nicht zuässig ? oder ?
Ich vermute, dass @<VariableTest> im Fall "SET @cmdstr ..." als beliebige Zeichenfolge (im Gesamtstring) an @cmdstr übergeben wird und nicht als deklarierte Variable erkannt wird. Wie aber kann das erreicht werden ?
PCFJKG
Es geht um eine gespeicherte Prozedur in einem MS-Access Projekt.
Alter Procedure <Proz_Name>
(
@<Variable> char(4),
)
As
DECLARE @CmdStr varchar(2000)
DECLARE @VariableTest decimal(5,2)
/* Angenommen, Spalte_y wird nach dem Wert 20 abgefragt */
SET @<VariableTest> = (SELECT SUM(<Spalte_x>) FROM <Table> WHERE (<Spalte_y> = 20))
/* Die @<Variabletest> enthält ordnungsgemäß die Summe. */
Nun soll Spalte_y nach dem jeweils in @<Variable> beim Aufruf übergebenen Wert abgefragt werden
SET @CmdStr = 'SET @<VariableTest> = (SELECT SUM(<Spalte_x>) FROM <Table> WHERE (<Spalte_y> = ' + @<Variable> + '))'
EXEC(@CmdStr)
/* Die @<VariableTest> enthält NULL. */
Ich vermute, dass @<VariableTest> im Fall "SET @cmdstr ..." als beliebige Zeichenfolge (im Gesamtstring) an @cmdstr übergeben wird und nicht als deklarierte Variable erkannt wird. Wie aber kann das erreicht werden ?
PCFJKG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93862
Url: https://administrator.de/contentid/93862
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar