使用另一个表中的行作为列创建表

时间:2011-08-26 11:29:34

标签: sql sql-server create-table

我有一个具有以下结构的表:

TableNo1

Field1

ROW1

ROW2

ROW3

ROW4

ROW5

...

...

...

第n行

现在我需要使用以下架构创建一个新表:

TableNo2

Field1(Table1的第1行)Field2(Table1的第2行)Field3(table1的第3行)Fieldn(table1的第n行)

我读到了这个,但我唯一能找到的是没有用的into子句。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以使用动态SQL

DECLARE @TableNo1 TABLE(Field varchar(128),DataType varchar(128))
DECLARE @s nvarchar(max)='CREATE TABLE dbo.TableNo2('
INSERT INTO @TableNo1
VALUES
('Field1','nvarchar(max)'),
('Field2','int')

SELECT  @s+=T.Field+' '+T.DataType+',' FROM   @TableNo1 T
SET @s=LEFT(@s,LEN(@s)-1)+')'
EXECUTE(@s)