TR_MKTLISTLAYOUT_INSERT

Definition

Copy


CREATE trigger dbo.[TR_MKTLISTLAYOUT_INSERT]
on [dbo].[MKTLISTLAYOUT] instead of insert not for replication
as
  set nocount on

  declare @ID uniqueidentifier;
  declare @NAME nvarchar(50);
  declare @NEWNAME nvarchar(50);
  declare @DESCRIPTION nvarchar(300);
  declare @SITEID uniqueidentifier;
  declare @RECORDSOURCEID uniqueidentifier;
  declare @TYPECODE int;
  declare @ADDNEWCODETABLEENTRIES bit;
  declare @ADDEDBYID uniqueidentifier;
  declare @CHANGEDBYID uniqueidentifier;
  declare @TS timestamp;

  -- make sure the name is unique

  if update([NAME])
    begin
      declare INSERTCURSOR cursor local fast_forward for
        select
          i.[ID],
          i.[NAME],
          i.[DESCRIPTION],
          i.[SITEID],
          i.[RECORDSOURCEID],
          i.[TYPECODE],
          i.[ADDNEWCODETABLEENTRIES],
          i.[ADDEDBYID],
          i.[CHANGEDBYID]
        from inserted i;

      open INSERTCURSOR;
      fetch next from INSERTCURSOR into @ID, @NAME, @DESCRIPTION, @SITEID, @RECORDSOURCEID, @TYPECODE, @ADDNEWCODETABLEENTRIES, @ADDEDBYID, @CHANGEDBYID;

      while (@@FETCH_STATUS = 0)
      begin
        set @NEWNAME = dbo.[UFN_MKTLISTLAYOUT_GETUNIQUENAME](@ID, @NAME);

        insert into dbo.[MKTLISTLAYOUT] (
          [ID],
          [NAME],
          [DESCRIPTION],
          [SITEID],
          [RECORDSOURCEID],
          [TYPECODE],
          [ADDNEWCODETABLEENTRIES],
          [ADDEDBYID],
          [CHANGEDBYID]
        ) values (
          @ID,
          @NEWNAME,
          @DESCRIPTION,
          @SITEID,
          @RECORDSOURCEID,
          @TYPECODE,
          @ADDNEWCODETABLEENTRIES,
          @ADDEDBYID,
          @CHANGEDBYID
        );

        fetch next from INSERTCURSOR into @ID, @NAME, @DESCRIPTION, @SITEID, @RECORDSOURCEID, @TYPECODE, @ADDNEWCODETABLEENTRIES, @ADDEDBYID, @CHANGEDBYID;
      end;

      close INSERTCURSOR;
      deallocate INSERTCURSOR;
    end;