创建表SQL Server,其中列名是从另一个表中选择colName

时间:2015-05-10 14:34:09

标签: sql-server database create-table

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

我们假设表名为table_fromCol。所有这些列名都是表中相同列的值。

我们说表table_colName包含:

id    colName
-----------------
1     Price
2     Quantity
3     Vat
4     Custom Duty
5     Maximum Price
6     Discount

我想创建包含所有这些列名称的表。

现在创建一个表table_fromCol

其设计观点是:

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

1 个答案:

答案 0 :(得分:0)

您可以使用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;

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