[ gogi100 @ 12.10.2018. 18:24 ] @
imam view u kome se podaci menjaju, imam identicnu tabelu kao i view. treba triggerom da popunjavam tabelu samo zapisima u kojima su polja izmenjena u view-u. zapis u tabeli treba da bude identican onom kao u view. nakon toga registrovana promena u tabeli treba da bude poslata mailom. moze li neko uputstvo?
[ gogi100 @ 17.10.2018. 09:18 ] @
pokusao sam sledece

Code:
USE [revizija1]
GO
/****** Object:  Trigger [dbo].[status]    Script Date: 10/16/2018 7:54:08 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[status] ON [dbo].[Rev]
AFTER UPDATE AS  
BEGIN
DECLARE @IDRev int,
        @NazivRevizije nvarchar(255),
        @DatumNacrt varchar(11),
        @DatumPredlog varchar(11),
        @DatumIzvestaj varchar(11),
        @CurrentUser nvarchar(255),
        @ExecutionTime datetime,
        @BodyMsg nvarchar(2100)= 'Izmene su izvrsene kod sledece',
        @subject nvarchar(255)
SELECT inserted.IDRev, 
       inserted.NazivRev, 
       inserted.DatumNacrt,
       inserted.DatumPredlog,
       inserted.DatumIzvestaj
FROM inserted

SET @IDRev = (SELECT inserted.IDRev FROM inserted)
SET @NazivRevizije = (SELECT inserted.NazivRevizije FROM inserted) 
SET    @DatumNacrt =  (SELECT inserted.DatumNacrt FROM inserted)
SET    @DatumPredlog = (SELECT  inserted.DatumPredlog FROM inserted)
SET    @DatumIzvestaj =  (SELECT inserted.DatumIzvestaj FROM inserted)
SET @CurrentUser = CONVERT(nvarchar(100), CURRENT_USER)
SET @ExecutionTime =getdate()

IF EXISTS (SELECT inserted.DatumNacrt FROM inserted)      
BEGIN

SET @BodyMsg = @BodyMsg + ' ' + @NazivRev+','+'Datum nacrta izvestaja'+ ' '+ @DatumNacrt
SET @subject = 'Izmene u datumu nacrta izvestaja'
 EXEC msdb.dbo.sp_send_dbmail  
@profile_name = 'status',  
@recipients = '[email protected]',  
@body [email protected],
@subject = @subject;
END
ELSE IF EXISTS (SELECT inserted.DatumPredlog FROM inserted)  
BEGIN

SET @BodyMsg = @BodyMsg + ' ' + @NazivRev+','+'Datum predloga izvestaja'+ ' '+ @DatumPredlog
SET @subject = 'Izmene u datumu predloga izvestaja'
 EXEC msdb.dbo.sp_send_dbmail  
@profile_name = 'status',  
@recipients = '[email protected]',  
@body [email protected],
@subject = @subject;
END
ELSE IF EXISTS (SELECT inserted.DatumIzvestaj FROM inserted) 
BEGIN

SET @BodyMsg = @BodyMsg + ' ' + @NazivRev+','+'Datum izvestaja'+ ' '+ @DatumIzvestaj
SET @subject = 'Izmena u datumu Izvestaja'
 EXEC msdb.dbo.sp_send_dbmail  
@profile_name = 'status',  
@recipients = '[email protected]',  
@body [email protected],
@subject = @subject;
END

BEGIN
 
  INSERT INTO [status-azuriranja]  
 (IDRev,NazivRev,DatumNacrt,@DatumPredlog,@DatumIzvestaj,CurrentUser,ExecutionTime)
  VALUES (@IDRevizija, @NazivRevizije,@DatumNacrt,@DatumPredlog,@DatumIzvestaj,@CurrentUser,@ExecutionTime)
 END
END


Medjutim, salje mi mejlove ali svih polja, ne samo polja koja su azurirana, kao da IF EXISTS (SELECT inserted.DatumNacrt FROM inserted) ne radi. Pokusao sam sa IF (UPDATE(DatumNacrt)), nista.
Sta da radim