2017-11-07 12 views
1

データベースからのフィールド名を使用してテーブルを作成できますか?私は "field_names"と呼ばれるテーブルを持っていると、そこに列の名前がテーブルにある必要があります決定します。そのテーブルの結果に基づいて、これらのフィールドを使用してデータベースにテーブルを作成する必要があります。SQL Server動的テーブルデータベースに格納されたフィールド名から

+1

Iこの質問を読んで、投稿した内容に基づいて回答を提供できると思われるかどうか質問してください。今は座っているのであまりにも漠然としていますが、あなたが探しているものを推測する方向はありません。 –

+0

@Sean Langeどの質問に言及していますか? –

+0

コード(ストアドプロシージャ、vbscript、python、what-have-you)を使用してCREATE TABLE文を作成し、その動的生成されたDDLをデータベースに送信する必要があります。これは一般に「動的SQL」と呼ばれます。また、データベースに定義されたデータベースを持つDBMSのアンチパターンに陥っているようにも思えますが、これを行うための正当な理由もたくさんあります。 – JNevill

答えて

0

たぶん、このような何か...私は...全体のコンセプトは

declare @columnNames table (id int identity(1,1), cname varchar(256)) 

insert into @columnNames 
values 
('Column1') 
,('AnotherColumn') 
,('Third Column') 


declare @i int = 1 
declare @max_i int = (select max(id) from @columnNames) 
declare @sql varchar(max) 
set @sql = 'create table #someNewTable(' 

while @i <= @max_i 
begin 
    set @sql = @sql + (select QUOTENAME(cname) from @columnNames where id = @i) + ' int, ' 
    set @i = @i + 1 
end 

set @sql = left(@sql,len(@sql) - 1) + ')' 
print @sql 
--exec(@sql) 

注意、あなたが任意の制約と同様に、インデックスに追加する必要があると思いひどいアイデアだと思いますけれども

関連する問題