Snippets

Tessitura Network Community Add/Update constituent interests from list

Created by Nick Reilingh
PRINT 'BEGIN INSTALL/UPDATE LP_ADD_TO_INTEREST_LIST';
GO

SET ANSI_NULLS, QUOTED_IDENTIFIER ON;
GO

IF OBJECT_ID(N'[dbo].[LP_ADD_TO_INTEREST_LIST]', N'P') IS NULL
  EXEC('CREATE PROCEDURE [dbo].[LP_ADD_TO_INTEREST_LIST] AS BEGIN SET NOCOUNT, XACT_ABORT ON; END;');
GO
/***********************************************************************************************************************
Author:       Nick Reilingh, Fisher Center at Bard College
Description:  This updates CUST_TKWs given a tkw_no and list_no.

***********************************************************************************************************************/
ALTER PROCEDURE [dbo].[LP_ADD_TO_INTEREST_LIST]
  @list_no int,
  @tkw_no int
AS
SET NOCOUNT, XACT_ABORT ON;

WITH tkw_rows AS (
  SELECT
      customer_no,
      tkw = @tkw_no,
      selected = 'Y'
    FROM dbo.T_LIST_CONTENTS
    WHERE list_no = @list_no
)
MERGE dbo.TX_CUST_TKW t
  USING tkw_rows r
    ON t.customer_no = r.customer_no
      AND t.tkw = r.tkw
  WHEN MATCHED AND t.selected <> r.selected
    THEN UPDATE SET t.selected = r.selected
  WHEN NOT MATCHED
    THEN INSERT (customer_no, tkw, selected)
      VALUES (r.customer_no, r.tkw, r.selected);

SELECT CAST(@@ROWCOUNT AS varchar) + ' rows affected.';

GO

GRANT EXECUTE ON [dbo].[LP_ADD_TO_INTEREST_LIST] TO [ImpUsers];
GO
/* END INSTALL/UPDATE LP_ADD_TO_INTEREST_LIST */

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.