CREATE TABLE #Temp (
    OPCol VARCHAR(128),
    OPDetailCol VARCHAR(128),
    OPXCol VARCHAR(128)
)
--Add sample data, representing some random OPX values that may already exist.
INSERT INTO #Temp (OPCol, OPDetailCol, OPXCol)
VALUES 
    ('OP','OP_DETAIL','OP_4'),
    ('OP','OP_DETAIL','OP_22'),
    ('OP','OP_DETAIL','OP_39'),
    ('OP','OP_DETAIL','OP_70')
--Common table expression with recursion.
;WITH CTE AS
(
    SELECT 1 AS OPCounter
    UNION ALL
    SELECT OPCounter + 1
    FROM CTE
    WHERE OPCounter < 100
)
INSERT INTO #Temp (OPCol, OPDetailCol, OPXCol)
SELECT 'OP','OP_DETAIL','OP_' + CAST(OPCounter AS VARCHAR(3))
FROM CTE
WHERE NOT EXISTS (
    SELECT 1
    FROM #Temp t
    WHERE t.[OPXCol] = 'OP_' + CAST(OPCounter AS VARCHAR(3))
)
--Verify results
SELECT * FROM #Temp