1
データベースからのフィールド名を使用してテーブルを作成できますか?私は "field_names"と呼ばれるテーブルを持っていると、そこに列の名前がテーブルにある必要があります決定します。そのテーブルの結果に基づいて、これらのフィールドを使用してデータベースにテーブルを作成する必要があります。SQL Server動的テーブルデータベースに格納されたフィールド名から
データベースからのフィールド名を使用してテーブルを作成できますか?私は "field_names"と呼ばれるテーブルを持っていると、そこに列の名前がテーブルにある必要があります決定します。そのテーブルの結果に基づいて、これらのフィールドを使用してデータベースにテーブルを作成する必要があります。SQL Server動的テーブルデータベースに格納されたフィールド名から
たぶん、このような何か...私は...全体のコンセプトは
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)
注意、あなたが任意の制約と同様に、インデックスに追加する必要があると思いひどいアイデアだと思いますけれども
Iこの質問を読んで、投稿した内容に基づいて回答を提供できると思われるかどうか質問してください。今は座っているのであまりにも漠然としていますが、あなたが探しているものを推測する方向はありません。 –
@Sean Langeどの質問に言及していますか? –
コード(ストアドプロシージャ、vbscript、python、what-have-you)を使用してCREATE TABLE文を作成し、その動的生成されたDDLをデータベースに送信する必要があります。これは一般に「動的SQL」と呼ばれます。また、データベースに定義されたデータベースを持つDBMSのアンチパターンに陥っているようにも思えますが、これを行うための正当な理由もたくさんあります。 – JNevill