Split comma delimited string and insert to a table (int)
Using the Split()
function you have mentioned in comments,
-- Variable holding comma separated values
DECLARE @Var VARCHAR(4000);
SET @Var = '188,189,190,191,192,193,194'
-- Test Target Table
DECLARE @Target_Table TABLE (First_ID INT,Second_ID INT,Third_ID INT)
-- Insert statement
INSERT INTO @Target_Table
SELECT 1, CAST(Items AS INT) , 0
FROM dbo.Split(@Var, ',')
-- Test Select
SELECT * FROM @Target_Table
Result Set
╔══════════╦═══════════╦══════════╗
║ First_ID ║ Second_ID ║ Third_ID ║
╠══════════╬═══════════╬══════════╣
║ 1 ║ 188 ║ 0 ║
║ 1 ║ 189 ║ 0 ║
║ 1 ║ 190 ║ 0 ║
║ 1 ║ 191 ║ 0 ║
║ 1 ║ 192 ║ 0 ║
║ 1 ║ 193 ║ 0 ║
║ 1 ║ 194 ║ 0 ║
╚══════════╩═══════════╩══════════╝
From SQL server 2016 onwards you can use this function string_split
DECLARE @Var VARCHAR(4000);
SET @Var = '188,189,190,191,192,193,194'
SELECT 1 as First_ID, value as Second_ID ,0 as Third_ID FROM string_split(@Var,',')
Better use XML for this,
Declare @Var nvarchar(MAX)
Set @Var ='188,189,190,191,192,193,194'
DECLARE @XML AS XML
DECLARE @Delimiter AS CHAR(1) =','
SET @XML = CAST(('<X>'+REPLACE(@Var,@Delimiter ,'</X><X>')+'</X>') AS XML)
DECLARE @temp TABLE (ID INT)
INSERT INTO @temp
SELECT N.value('.', 'INT') AS ID FROM @XML.nodes('X') AS T(N)
SELECT * FROM @temp