It's not entirely clear where your
ENABLE_COLS
value is coming from. Assuming it's a parameter or variable, something like this should work:
CREATE PROC usp_InsertValues
(
@TagNo int,
@EnableCols varchar(50),
@A int,
@B int,
@C int,
@D int
)
As
BEGIN
DECLARE @TestCols varchar(52);
SET NOCOUNT, XACT_ABORT ON;
SET @TestCols = ',' + @EnableCols + ',';
INSERT INTO tbname
(
TagNo,
ENABLE_COLS,
ColA,
ColB,
ColC,
ColD
)
SELECT
@TagNo,
@EnableCols,
CASE WHEN @TestCols Like '%,A,%' THEN @A END,
CASE WHEN @TestCols Like '%,B,%' THEN @B END,
CASE WHEN @TestCols Like '%,C,%' THEN @C END,
CASE WHEN @TestCols Like '%,D,%' THEN @D END
;
END;