I would recommend normalization of your data so that metainfo are merged into a single table. Let's put an diagram together:
MetaInfotypes (parent) --1-to-many--> MetaInfo (child)
MetaInfo (parent) --1-to-many--> Detail (child)
This means: One or more detail will be related to a MetaInfo. One or more MetaInfo will be related to a Type.
Let's look at the table structures:
-- Example: MetaInfo1, MetaInfo2, MetaInfo3
create table MetaInfoTypes (
id int identity(1, 1) primary key,
name varchar(20),
constraint uk_MetaInfoTypes_name unique(name)
);
create table MetaInfo (
id int identity(1,1) primary key,
MetaInfotypeid int,
somevalue varchar(100),
foreign key (MetaInfotypeid) references MetaInfoTypes(id)
);
create table detail (
detailid int identity(1,1) primary key,
detailinfo varchar(4),
MetaInfoid int,
foreign key (MetaInfoid) references MetaInfo(id)
);
Check out this SQLFiddle with dummy data
This way you won't have to add MetaInfo tables. You would just push the data into MetaInfo table and just qualify the type of MetaInfo. To add types easily, we have MetaInfoTypes table. Then simply associate a detail with the meta info of choice and you are done.
When a new meta info has to be added, add it to the MetaInfoType. Then add data to MetaInfo for that type. Then add data to detail and reference MetaInfo's Id.