Sql server 创建列名称为的表SQL Server从另一个表中选择colName
我正在设计一个包含90多列的表 假设表名为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
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
其设计观点是:
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谢谢你们两位的帮助