Ik ben een trigger aan het schrijven die van een tabel alle veldnamen ophaalt en deze dan in een cursor overloopt en vergelijkt met de oude en nieuwe waarde bij het uitvoeren van een insert of update op deze tabel.
Probleem is nu dat deze vastloopt:
Hij loopt vast op regel 29, met andere woorden, het insert-statement loopt vast, als ik dit in commentaar zet loopt het niet vast.
Aan het statement zelf ligt het niet, dit heb ik afzonderlijk getest en simpelere inserts geplaatst met het invoegen van een hardgecodeerde parameter in 1 veld lopen ook vast.
Iemand een idee, k snap echt niet wat er fout kan zijn.
Probleem is nu dat deze vastloopt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| CREATE TRIGGER Update_Products
ON [dbo].[PRODUCTS]
FOR INSERT,UPDATE
AS
create table #MyInternalList (
list_item varchar(300) not null)
insert #MyInternalList
exec ( "SELECT top 1 syscolumns.name AS column_name
FROM sysobjects INNER JOIN
syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype
WHERE (sysobjects.xtype = 'U') AND (sysobjects.name = 'PRODUCTS')
ORDER BY sysobjects.name, syscolumns.colid" )
DECLARE @waarde as varchar(100)
DECLARE @waarde_oud VARCHAR(5000)
DECLARE @waarde_nieuw VARCHAR(5000)
DECLARE @gebruiker VARCHAR(150)
DECLARE products_cursor CURSOR FOR
SELECT * FROM #MyInternalList
OPEN products_cursor
FETCH products_cursor INTO @waarde
WHILE @@fetch_status = 0
BEGIN
SELECT @waarde_oud = (SELECT @waarde FROM Deleted)
SELECT @waarde_nieuw = (SELECT @waarde FROM Inserted)
SELECT @gebruiker = SYSTEM_USER
exec [dbo].[PRODUCTS] @waarde,'PRODUCTS',@waarde_oud,@waarde_nieuw,@gebruiker
END
CLOSE products_cursor
DEALLOCATE products_cursor |
Hij loopt vast op regel 29, met andere woorden, het insert-statement loopt vast, als ik dit in commentaar zet loopt het niet vast.
Aan het statement zelf ligt het niet, dit heb ik afzonderlijk getest en simpelere inserts geplaatst met het invoegen van een hardgecodeerde parameter in 1 veld lopen ook vast.
Iemand een idee, k snap echt niet wat er fout kan zijn.