使用另一个表列数据中的列名创建表

时间:2016-07-12 06:46:57

标签: sql sql-server sql-server-2008 sql-server-2005

我的表格有一个这样的列:

---------
|  col  |
---------
|   A   |
|   B   |
|   C   |
---------

我想创建一个包含以下列名的新表:

-------------------
|  A  |  B  |  C  |
-------------------

有什么建议吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

一种方法是使用动态sql 假设所有列的数据类型为int,您可以执行以下操作:

创建并填充样本表(在将来的问题中保存此步骤):

DECLARE @T table
(
    col char(1)
)

INSERT INTO @T VALUES ('a'), ('b'), ('c')

构建动态sql:

DECLARE @Sql nvarchar(max) = 'CREATE TABLE YourNewTableName ('

SELECT @Sql = @Sql + col +' int,'
FROM @T 


SET @Sql = LEFT(@Sql, LEN(@Sql) - 1) +');'
--Print @sql

执行它(您可能希望先打印它以确保它是正确的):

EXEC(@Sql)