2015-05-10 80 views
0

我正在設計一個包含90多列的表。創建表SQL Server其中列名是從另一個表中選擇colName

比方說,表名是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

你能否提供你到目前爲止嘗試過的代碼,並讓我們知道你遇到的問題? – Cristik

+0

[踢壞的習慣:選擇錯誤的數據類型](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data- type.aspx) - 你應該總是使用最合適的數據類型 - 畢竟這就是他們所在的地方!如果你有像'Price'或'Quantity'這樣的列 - **不要**將它們存儲爲'varchar'!這是一個**可怕的糟糕的設計實踐!** –

+0

對不起,我還沒有做任何事,但我只是閱讀教程,如果有可能@cristik 是啊我知道這裏和thnks提醒我-marc 謝謝你倆comnt –

回答

0

您可以使用透視和「選擇爲」生成表。

或者,您可以使用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 @[email protected] +','[email protected]+' varchar(50)'; 
    fetch next from c into @cname; 
end; 
select @[email protected]+')'; 
print @sql; 
exec(@sql); 
deallocate c; 

您可以編輯代碼,以改變在新表中的列類型,大小。

相關問題