Du laver en statisk tom tabel (så man ikke bruger tid på at lave den) Så starter du en transaktion. nu indsætter du din select i din statiske tabel. Nu kan du behandle dine dataer. Lav rollback for transaktionen. --Eks. BEGIN TRAN FOO INSERT INTO staticTable Exec(\'Dynamisk SQL...\') SELECT * FROM staticTable ROLLBACK TRAN FOO
Det var også en af de løsninger jeg har overvejet, men da det kører 1000-vis af gange, og er tidskritisk, er dette ikke en optimal løsning. Jeg løste det ved at oprette lokale variable inden i EXEC(\'...\')-kommandoen og så behandle dem i det scope. Det bliver så nogle temmelig store EXEC-statements, men det virker. Tak for hjælpen! /fthoms
Man kan sikkert oxo gøre det sådan her: DECLARE c1 CURSOR READ_ONLY FOR EXEC(\'SELECT a, b, c FROM foo\') DECLARE @a varchar DECLARE @b varchar DECLARE @c varchar OPEN c1 FETCH NEXT FROM c1 INTO @a, @b, @c --Next :) WHILE @@FETCH_STATUS = 0 BEGIN print \"a=\" + @a + \" b=\" + @b + \" c=\" + @c FETCH NEXT FROM c1 INTO @a, @b, @c --Next :) END CLOSE c1 DEALLOCATE c1
Synes godt om
Ny brugerNybegynder
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.