Jag försöker skapa följande stored procedure utan framgång: Till att börja med förstår jag inte varför du måste exekvera frågan dynamiskt, men det kanske finns nån anledning till det. Nedanstående kod bör iaf fungera: Testa istället med: Ta emot värde från dynamisk SQL-fråga [LÖST]
<code>
CREATE PROC spLastTick
@UpdatedValue VARCHAR(50) OUTPUT
AS
DECLARE @tmpUpd VARCHAR(50)
SET @tmpUpd = (SELECT TOP 1 UpdatedColum FROM tblRealtidsTick)
SET @UpdatedValue = EXECUTE('SELECT TOP 1 ' + @tmpUpd + ' FROM tblRealtidsTick')
</code>
Det som jag vill göra är att returnera vilket värde som den dynamiska sql-frågan returnerar så att jag kan använda den informationen i en annan procedur.
Felmeddelande lyder "Incorrect syntax near the keyword 'EXECUTE'."
Hoppas att det framgår vad jag försöker göra.
Johan SöderbergSv: Ta emot värde från dynamisk SQL-fråga och returnera
CREATE PROC spLastTick
@UpdatedValue VARCHAR(50) OUTPUT
AS
DECLARE @tmpUpd VARCHAR(50)
SET @tmpUpd = 'UpdatedColum'
SET @UpdatedValue = EXECUTE('SELECT TOP 1 ' + @tmpUpd + ' FROM tblRealtidsTick')
Men jag hade alltså gjort så här istället, om det inte finns några andra faktorer du inte nämnt:
CREATE PROC spLastTick
@UpdatedValue VARCHAR(50) OUTPUT
AS
SELECT @UpdatedValue = MAX(UpdatedColum)
FROM tblRealtidsTick
ORDER BY någonkolumnSv: Ta emot värde från dynamisk SQL-fråga och returnera
CREATE PROC spLastTick
@UpdatedValue VARCHAR(50) OUTPUT
AS
DECLARE @tmpUpd VARCHAR(50)
SET @tmpUpd = (SELECT TOP 1 UpdatedColum FROM tblRealtidsTick)
EXECUTE 'SET @UpdatedValue = (SELECT TOP 1 ' + @tmpUpd + ' FROM tblRealtidsTick)'