使用来自另一个 tables 列数据的列名创建 table
Create table with column names from another tables column data
我 table 有这样一个列:
---------
| col |
---------
| A |
| B |
| C |
---------
我想用以下列名称创建一个新的 table:
-------------------
| A | B | C |
-------------------
有什么建议吗?非常感谢。
一种方法是使用动态 sql。
假设所有列的数据类型都是 int,您可以这样做:
创建并填充示例 table(请在您以后的问题中为我们省去这一步):
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)
我 table 有这样一个列:
---------
| col |
---------
| A |
| B |
| C |
---------
我想用以下列名称创建一个新的 table:
-------------------
| A | B | C |
-------------------
有什么建议吗?非常感谢。
一种方法是使用动态 sql。
假设所有列的数据类型都是 int,您可以这样做:
创建并填充示例 table(请在您以后的问题中为我们省去这一步):
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)