Avatar billede opcm_ip Nybegynder
25. oktober 2010 - 13:25 Der er 1 løsning

Tilskrive værdi i updated row

Create trigger [dbo].[UpdateCount] on
[dbo].[ID] for update
as
DECLARE @id varchar()
set @id = (select ID from Updated)
UPDATE dbo.ID SET LoginCount = LoginCount + where id = @id

Men ved update får jeg:

Invalid object name 'Updated'....

Hvorfor?
Avatar billede bkp Nybegynder
25. oktober 2010 - 13:51 #1
Ja du får fejlen kun ved update da du har sat din trigger til at køre kun ved Update med linien:
... for update

Desuden kan du ikke benytte referencen ... from Updated, da objektet ikke findes.
Der findes kun 2 mulige tabeller du kan referere til og det er Inserted eller Deleted (ikke helt korrekt, du kan selvfølgelig hente fra alle fysiske tabeller i din database, men nu snakker vi kun om virtuelle tabeller som du skal bruge her).

Så jeg ville ændre din trigger til:
....
set @id = (select ID from Inserted)
....
http://msdn.microsoft.com/en-us/library/ms191300.aspx

Se flere detaljer om opbygning af trigger her:
http://msdn.microsoft.com/en-us/library/ms189799.aspx
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester