Kan man på nått vis öppna en dynamiskt uppbyggd sql fråga som man normalt kör med sp_executesql i en cursor? Tjena Tack! Det är en idé som jag kan använda som sista lösning men jag vill gärna ha en bättre idé om någon har. Helst vill jag kunna kombinera dynamisk fråga med cursor om någon vet hur man ska göra. Hej! Tack! Det var ett bra föslag som funkade alldeles utmärktCursor kombinerad med sp_executesql
<code>
DECLARE Period_cursor CURSOR FOR
SELECT EmployeeID, PeriodStart FROM...
</code>
<code>
EXEC sp_executesql 'SELECT .......'
</code>
Har försökt alla möjliga kombinationer men det går inte
<code>
DECLARE Period_cursor CURSOR FOR
EXEC sp_executesql 'SELECT .......'
DECLARE Period_cursor CURSOR FOR
sp_executesql 'SELECT .......'
DECLARE Period_cursor CURSOR FOR
'SELECT .......'
</code>etc
får bara meddelande om incorrect syntax. Den dynamiska frågan går att köra med
<code>
EXEC sp_executesql 'SELECT .......'
</code>
men jag kan inte få in den i en cursorSv: Cursor kombinerad med sp_executesql
Det du skulle kunna göra är att skicka över datat till en temporärtabell och sedan köra cursorn mot den.. Det kanske inte är att rekommendera prestandamässigt iochförsig..
MickeSv: Cursor kombinerad med sp_executesql
Sv: Cursor kombinerad med sp_executesql
Du kan göra hela deklarationen av cursorn dynamisk. Cursors följer inte de regler som normalt begränsar dynamisk SQL(scope).
Så här:
<code>
declare @cmd varchar(8000)
select @cmd = 'declare cur cursor for select id from sysobjects'
exec (@cmd)
open cur
...
</code>Sv: Cursor kombinerad med sp_executesql
Fick göra en lite mindre justering och så här blev mallen:
<code>
declare @cmd varchar(8000)
set @cmd = 'declare cur cursor for select id from sysobjects'
exec sp_executesql @cmd
open cur
</code>