--DDL and sample datas CREATE TABLE TABLE1 (FieldID INT,Descriptions VARCHAR(50)) INSERT INTO TABLE1 VALUES (101,'Science'),(102,'History'),(103,'Math') CREATE TABLE TABLE2 (StudentID INT,[101] INT,[102] INT,[103] INT ) INSERT INTO TABLE2 VALUES (23001,100,87,93),(23002,87,84,96),(23003,92,82,96),(23004,86,80,78) --Step1: Create a backup of TABLE2 SELECT * INTO New_Table FROM TABLE2 --Step2: Change the column names of the New_Table DECLARE @Command NVARCHAR(MAX) = '' SELECT @Command = @Command + 'Exec sys.sp_rename @objname = N''New_Table.'+CAST(FieldID AS VARCHAR(10))+''', @newname = '''+Descriptions+''';' FROM TABLE1 --PRINT @Command EXEC (@Command) --Step3: Query data from the New_Table SELECT * FROM New_Table DROP TABLE TABLE1,TABLE2