Ho il seguente trigger su una tabella per un database SQL Server 2008. È ricorsivo, quindi ho bisogno di fermarlo.Come si impedisce l'insorgenza di un trigger del database?
Dopo aver inserito o aggiornato un record, sto tentando di aggiornare semplicemente un singolo campo su tale tabella.
Ecco il grilletto:
ALTER TRIGGER [dbo].[tblMediaAfterInsertOrUpdate]
ON [dbo].[tblMedia]
BEFORE INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
DECLARE @IdMedia INTEGER,
@NewSubject NVARCHAR(200)
SELECT @IdMedia = IdMedia, @NewSubject = Title
FROM INSERTED
-- Now update the unique subject field.
-- NOTE: dbo.CreateUniqueSubject is my own function.
-- It just does some string manipulation.
UPDATE tblMedia
SET UniqueTitle = dbo.CreateUniqueSubject(@NewSubject) +
CAST((IdMedia) AS VARCHAR(10))
WHERE tblMedia.IdMedia = @IdMedia
END
qualcuno può dirmi come posso impedire che inserto del trigger dal dando il via un altro trigger di nuovo?
Un certo numero di persone hanno detto di disabilitare grilletto ricorsione. adesso, non voglio toccare quell'impostazione. Preferisco sistemare il tsql. –
Quindi peraps il trigger non dovrebbe essere PRIMA ma un trigger INSTEAD OF? http://msdn.microsoft.com/en-us/library/ms175089.aspx –