Ik heb dus een MS-SQL database met daarin een trigger die controleert of de gekozen gebruikersnaam al bestaat. deze ziet er als volgt uit:
Ik voer dus een een sql-query uit die een aantal gegevens in de database zet. Een van die gegevens is Username (waarvan ik zeker weet dat die niet bestaat).
Nu komt het vreemde, de waarde count wordt dus 1, maar het select statement geeft 0 rijen terug.
De trigger lijkt mij geen fouten te bevatten, waarom het dus mis gaat is mij een compleet raadsel.
Iemand die hier een oplossing voor heeft?
SQL:
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
| ALTER TRIGGER [Check_Username] ON dbo.Gebruiker FOR INSERT AS declare @ins_username as varchar(10) declare @count as int select @count = '0' select @ins_username = inserted.Username from inserted /* Ingevoegd voor debug */ print 'count na clear' print @count Select @count = count(GebruikerID) from dbo.Gebruiker where Username=@ins_username If @count > 0 begin rollback print 'Error: [Trigger]Username already exists!' /*Ingevoegd voor debug */ select * from dbo.Gebruiker where Username=@ins_username return end |
Ik voer dus een een sql-query uit die een aantal gegevens in de database zet. Een van die gegevens is Username (waarvan ik zeker weet dat die niet bestaat).
Nu komt het vreemde, de waarde count wordt dus 1, maar het select statement geeft 0 rijen terug.
Ik dacht dat de variabele @count wellicht niet geleegd werd, dat heb ik dus expliciet nogmaals gedaan en daarna is die waarde dus ook 0.count na clear
0
Error: [Trigger]Username already exists!
(0 row(s) affected)
De trigger lijkt mij geen fouten te bevatten, waarom het dus mis gaat is mij een compleet raadsel.
Iemand die hier een oplossing voor heeft?
offtopic:
Ik heb dus een projectleider die mij, als ik dit dus morgen niet opgelost krijg, gaat vragen of ik 'harikiri' wil gaan plegen
(Japanese management techniques
).
Ik heb dus een projectleider die mij, als ik dit dus morgen niet opgelost krijg, gaat vragen of ik 'harikiri' wil gaan plegen