Ik probeer een insert of update te doen binnenin een cursor. Ik wil namelijk wat data ophalen uit een tabel, en daar vervolgens een functie mee aanroepen, en daar weer een andere actie mee uitvoeren. Maar zodra ik een insert of update uitvoer binnenin een cursor, dan sluit de cursor. Als ik alleen een select uitvoer binnenin een cursor, dan loopt hij wel netjes door de hele tabel heen.
Ik heb dus maar even een simpel testje opgezet dat niks doet behalve testen of een insert lukt, maar dat gaat ook al niet.
Ik snap er helemaal niks van. Ik ben ik de veronderstelling dat ik gewoon een insert binnenin een cursor kan doen, maar is dat ook zo?
Om wat te testen heb ik de volgende code geschreven:
De fetch next from curGebruiker binnenin de loop (dus na de insert) levert een error op:
"Cursor not open"
Snapt iemand wat hier mis aan is?
Ik heb dus maar even een simpel testje opgezet dat niks doet behalve testen of een insert lukt, maar dat gaat ook al niet.
Ik snap er helemaal niks van. Ik ben ik de veronderstelling dat ik gewoon een insert binnenin een cursor kan doen, maar is dat ook zo?
Om wat te testen heb ik de volgende code geschreven:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| declare curGebruiker cursor for select * from tblGebruiker open curGebruiker fetch next from curGebruiker while @@fetch_status = 0 begin insert into tblTest ( colTest) values ('T') fetch next from curGebruiker end close curGebruiker deallocatie curGebruiker |
De fetch next from curGebruiker binnenin de loop (dus na de insert) levert een error op:
"Cursor not open"
Snapt iemand wat hier mis aan is?