exec sys.sp_addmessage @msgnum=50209 , @severity= 16, @msgtext= N'امکان تغییر یا حذف برای ردیف های بایگانی وجود ندارد', @replace=N'replace' go set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[TRGOnUpdateDocDetail] ON [dbo].[DocDetailTbl] after update AS BEGIN SET NOCOUNT ON; declare @Change as bit SELECT @Change =(case when deleted.ammountin<>inserted.ammountin or deleted.ammountout<>inserted.ammountout or deleted.Fk_AccountSyscode<>inserted.Fk_AccountSyscode then 1 else 0 end) FROM deleted INNER JOIN DocDetailTbl AS inserted ON deleted.Syscode = inserted.Syscode if @Change=1 if exists(select * from deleted where not ArchiveName is null and ArchiveName<>'') raiserror (50209,16,1) else insert into ChangeDocDetailTbl (Syscode, Fk_docSysCode, Fk_AccountSyscode, AmmountIN, AmmountOUT, UserRowNo, ArchiveName, SndFk_AccountSyscode, Comment,OnChangeUserId,OnchangeSysDate,IsUpdated) select Syscode, Fk_docSysCode, Fk_AccountSyscode, AmmountIN, AmmountOUT, UserRowNo, ArchiveName, SndFk_AccountSyscode, comment,dbo.funuserid(),getdate(),1 from deleted END