-2

tableName'sts.students'
columnname'studentid,studentfname,studentlname'

I want to get the dynamic script using columnname and tableName to insert data into a new table 'tabdata'. How can I do ?

Liam_Y
  • 9
  • 1
  • I think this will be your solution: https://stackoverflow.com/questions/4526461/converting-select-results-into-insert-script-sql-server – Praneet Nadkar Dec 27 '18 at 07:53

1 Answers1

-1

Sorry that I could not understand you clearly. Would you like this ?

Create table tabdata(header1 varchar(100), header2 varchar(100),
header3 varchar(100),header4 varchar(100),header5 varchar(100))

declare @tableName varchar(100)
declare @columnname varchar(max)
declare @target_columnname varchar(max)
declare @sql varchar(max)

set @tableName='sts.students' 

set @columnname='studentid,studentfname,studentlname' 

set @target_columnname= (stuff((select ',' +[Name] from (
Select row_number()over(order by Name)as rn ,Name
FROM SysColumns Where id=Object_Id('tabdata')) a 
where rn<=len(@columnname)-len(replace(@columnname, ',', ''))+1
FOR XML PATH('')),1,1,''))

SELECT @sql = 'INSERT INTO tabdata(' +
    STUFF ((
        SELECT ',' + @target_columnname + ''
        FOR XML PATH('')), 1, 1, '') +
    ') select ' +@columnname +' from '+@tableName
print (@sql)
exec(@sql)

/*
INSERT INTO tabdata(header1,header2,header3) select studentid,studentfname,studentlname from sts.students
*/