set @id=scope_idenity() ,
de nem biztos, hogy egy sort updatelnek, ugyhogy, helyette az inserted pseudo táblát ajánlom, vagy le kell kezelni a következőképpen:
DECLARE
@Cnt int
SET
@Cnt=@@RowCount
IF
@Cnt = 0 RETURN
IF @Cnt > 1 GOTO errorhandler
errorhandler:
--itt lekezeljük, pl raiserror
Az if UPDATE() csak azt mondja meg, hogy lett-e updatelve a mező, de ha ugyanazt rakod bele, akkor is azt fogja mondani, hogy volt update, úgyhogy ezért is az inserted táblát ajánlom.
Egy sor esetén:
declare @id
SELECT @id=id
FROM dbo.deleted as d
JOIN inserted as i on d.id=i.id
where d.ticketWorkSheetBackDate <> i.ticketWorkSheetBackDate
if @id is not null
exec procedure
Ja és ha előzőleg lehetett null a mező, akkor is le kell kezelni
akár így is lehet:
where d.ticketWorkSheetBackDate <> i.ticketWorkSheetBackDate or (d.ticketWorkSheetBackDate is null and i.ticketWorkSheetBackDate is not null)