Det tror jeg altså ikke du får til at virke på den måde. Det lyder som om du gerne vil simulere arrays i T-SQL. Det kan være du kan bruge en tabelvariabel i stedet:
DECLARE @pristabel TABLE ( pris decimal(12,2) )
DECLARE @prissum decimal(12,2)
INSERT INTO @pristabel(pris) VALUES (100) INSERT INTO @pristabel(pris) VALUES (200)
SELECT @prissum = SUM(pris) FROM @pristabel
Her erklæres en variabel som en tabel. Denne variabel kan nu bruges som om det var en rigtig tabel i databasen. Og det er SQL Server som bekendt rigtig god til at håndtere, fx summeringen i eksemplet. Man skal lige vænne sig til at lave en insert i stedet for at sætte en variabel, men det fungerer godt.
Men da det er en WHILE løkke der skal bruges må det hedde
DECLARE @priser TABLE (id INT, amount VARCHAR(10)) DECLARE @result VARCHAR(10) DECLARE @int int SET @int = 1
INSERT INTO @priser (id, amount) VALUES (1, 1000) INSERT INTO @priser (id, amount) VALUES (2, 2000) INSERT INTO @priser (id, amount) VALUES (3, 3000) INSERT INTO @priser (id, amount) VALUES (4, 4000)
WHILE @int < 3 BEGIN SELECT @result = amount FROM priser (NOLOCK) WHERE id = @int END
Herefter har du noget nær et array, og resultatet fra hver loop i @result
Håber dette er det rette
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.