|
|
Question : How to rotate rows into columns in a table using T-SQL
|
|
I have a table named Table1 contains records like the following,
field name data type length ------------ ----------- -------- field1 nvarchar 60 field2 nvarchar 60 field3 int 4 field4 datetime 8
How to create a new table using T-SQL with fields and types get from Table1 above.
Thanks in advance
|
Answer : How to rotate rows into columns in a table using T-SQL
|
|
try:
create table #test (fieldname varchar(100), datatype varchar(100), length varchar(50))
insert into #test (fieldname,datatype,length) select 'field1', 'nvarchar', '60' union all select 'field2', 'nvarchar', '60' union all select 'field3', 'int', '4' union all select 'field4', 'datetime', '8'
declare @SQLStatement nvarchar(2000), @ColumnDefinition nvarchar(1000), @TableName nvarchar(50)
set @TableName = 'ThisIsMyTableName'
select @SQLStatement = 'CREATE TABLE ' + @TableName + ' (**COLUMNDEFINITION**)'
select @ColumnDefinition = COALESCE(@ColumnDefinition + ',','') + FieldName + ' ' + DataType + CASE WHEN DataType in ('VARCHAR','NVARCHAR','CHAR','NCHAR','FLOAT') -- THIS CAN BE ALTERED TO SUIT YOUR NEEDS AND Length IS NOT NULL THEN '(' + Length + ')' ELSE '' END FROM #TEST
drop table #test
SET @SQLStatement = REPLACE(@SQLStatement,'**COLUMNDEFINITION**',@ColumnDefinition)
EXEC(@SQLStatement)
|
|
|
|
|