Sql server 创建列名称为的表SQL Server从另一个表中选择colName

Sql server 创建列名称为的表SQL Server从另一个表中选择colName,sql-server,database,create-table,Sql Server,Database,Create Table,我正在设计一个包含90多列的表 假设表名为table\u fromCol。所有这些列名称都是表中同一列的值 假设tabletable\u colName包含: id colName ----------------- 1 Price 2 Quantity 3 Vat 4 Custom Duty 5 Maximum Price 6 Discount 我想用所有这些列的名称创建表 现在从COL创建一个表table\u 其设计观点是: Colum

我正在设计一个包含90多列的表

假设表名为
table\u fromCol
。所有这些列名称都是表中同一列的值

假设table
table\u colName
包含:

id    colName
-----------------
1     Price
2     Quantity
3     Vat
4     Custom Duty
5     Maximum Price
6     Discount
我想用所有这些列的名称创建表

现在从COL创建一个表
table\u

其设计观点是:

Columns       datatype      null
----------------------------------
id             int          false
Price          varchar      true
Quantity       varchar      true
Vat            varchar      true
Custom Duty    varchar      true
Maximum Price  varchar      true
Discount       varchar      true
您可以使用Pivot和“select into”生成表

或者,您可以使用T-SQL编写一个简短的脚本,并按如下方式创建表:

declare c cursor fast_forward for select colname from table_colname;
declare @cname varchar(50), @sql varchar(1000);
select @sql='create table table_fromcol (id int';
open c;
fetch from c into @cname;
while @@fetch_status=0 begin
   select @sql=@sql +','+@cname+' varchar(50)';
   fetch next from c into @cname;
end;
select @sql=@sql+')';
print @sql;
exec(@sql);
deallocate c;

您可以编辑代码以更改新表中的列类型、大小。

您能否提供迄今为止尝试过的代码并告诉我们您遇到的问题?-您应该始终使用最合适的数据类型——毕竟,这就是它们的用途!如果您有类似于
Price
Quantity
的列,请不要将它们存储为
varchar
!这是一个非常糟糕的设计实践!对不起,我还没有做任何事情,如果可能的话,我只是在阅读教程@cristik是的,我知道这里和thnks提醒我-marc谢谢你们两位的帮助