SQL Server动态表来自存储在数据库

时间:2017-11-07 17:02:27

标签: sql-server

我可以使用来自数据库的字段名创建表吗?我有一个名为" field_names"并决定表中应该有哪个列名。根据该表的结果,我需要使用这些字段在数据库中创建一个表。

1 个答案:

答案 0 :(得分: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)

注意,您还需要添加任何约束和索引......