USP_MKTSOURCEANALYSISRULEFIELDS_SAVE

Saves all fields related to a source analysis rule.

Parameters

Parameter Parameter Type Mode Description
@CHANGEAGENTID uniqueidentifier IN
@ID uniqueidentifier IN
@SOURCEANALYSISRULEID uniqueidentifier IN
@NAME nvarchar(255) IN
@QUERYVIEWCATALOGID uniqueidentifier IN
@QUERYFIELD nvarchar(255) IN
@SEQUENCE int IN
@ISACTIVE bit IN
@PURPOSE nvarchar(255) IN
@SMARTFIELDTABLECATALOGID uniqueidentifier IN
@ISCUSTOM bit IN
@DBOBJECTNAME nvarchar(255) IN
@ADHOCQUERYID uniqueidentifier IN
@RECORDSOURCEID uniqueidentifier IN
@VIEWPATH nvarchar(4000) IN
@CACHETABLECOLUMNNAME nvarchar(128) IN
@ISIDSET bit IN
@QUERYABLE bit IN

Definition

Copy


CREATE procedure dbo.[USP_MKTSOURCEANALYSISRULEFIELDS_SAVE]
(
  @CHANGEAGENTID uniqueidentifier = null,    
  @ID uniqueidentifier = null,
  @SOURCEANALYSISRULEID uniqueidentifier,
  @NAME nvarchar(255),
  @QUERYVIEWCATALOGID uniqueidentifier,
  @QUERYFIELD nvarchar(255),
  @SEQUENCE int,
  @ISACTIVE bit,
  @PURPOSE nvarchar(255),
  @SMARTFIELDTABLECATALOGID uniqueidentifier,
  @ISCUSTOM bit,
  @DBOBJECTNAME nvarchar(255),
  @ADHOCQUERYID uniqueidentifier,
  @RECORDSOURCEID uniqueidentifier,
  @VIEWPATH nvarchar(4000),
  @CACHETABLECOLUMNNAME nvarchar(128),
  @ISIDSET bit,
  @QUERYABLE bit = true
)
as
  set nocount on;

  declare @CURRENTDATE datetime = getdate();
  declare @SMARTFIELDID uniqueidentifier;

  begin try
    if @CHANGEAGENTID is null
      exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

    select
      @SMARTFIELDID = [ID]
    from dbo.[SMARTFIELD]
    where [ID] = @SMARTFIELDTABLECATALOGID
    or [TABLECATALOGID] = @SMARTFIELDTABLECATALOGID;

    if exists(select * from dbo.[MKTSOURCEANALYSISRULEFIELDS] where [ID] = @ID)
      /* Update the output field - restrict this to only update specific fields */
      update dbo.[MKTSOURCEANALYSISRULEFIELDS] set
        [NAME] = @NAME,
        [PURPOSE] = @PURPOSE,
        [ISACTIVE] = @ISACTIVE,
        [SEQUENCE] = @SEQUENCE,
        [QUERYABLE] = @QUERYABLE,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE
      where [ID] = @ID;
    else
      begin
        if @ID is null
          set @ID = newid();

        /* Save the output field */
        insert into dbo.[MKTSOURCEANALYSISRULEFIELDS] (
          [ID],
          [SOURCEANALYSISRULEID],
          [NAME],
          [QUERYVIEWCATALOGID],
          [QUERYFIELD],
          [SEQUENCE],
          [ISACTIVE],
          [PURPOSE],
          [SMARTFIELDID],
          [ISCUSTOM],
          [DBOBJECTNAME],
          [ADHOCQUERYID],
          [ADDEDBYID],
          [CHANGEDBYID],
          [DATEADDED],
          [DATECHANGED],
          [VIEWPATH],
          [CACHETABLECOLUMNNAME],
          [ISIDSET],
          [QUERYABLE]
        ) values (
          @ID,
          @SOURCEANALYSISRULEID,
          @NAME,
          @QUERYVIEWCATALOGID,
          @QUERYFIELD,
          @SEQUENCE,
          @ISACTIVE,
          @PURPOSE,
          @SMARTFIELDID,
          @ISCUSTOM,
          @DBOBJECTNAME,
          @ADHOCQUERYID,
          @CHANGEAGENTID,
          @CHANGEAGENTID,
          @CURRENTDATE,
          @CURRENTDATE,
          @VIEWPATH,
          @CACHETABLECOLUMNNAME,
          @ISIDSET,
          @QUERYABLE
        );
      end
  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR];
    return 1;
  end catch

  return 0;