Sql 通过查询从表数据生成列

Sql 通过查询从表数据生成列,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有以下表格: 表A Field Name Field Value Column1 Column1value Column2 Column2value Column3 Column3value Column4 Column4value 表B Column1 Column2 Column3 Column4 Column1value Column2value Column3value Column4value 如何编写查询以从表a生成表B?您可以使

我有以下表格:

表A

Field Name  Field Value
Column1 Column1value
Column2 Column2value
Column3 Column3value
Column4 Column4value
表B

Column1     Column2         Column3      Column4
Column1value  Column2value    Column3value   Column4value

如何编写查询以从表a生成表B?

您可以使用
选择到
中,下面生成的
表B
将具有与源表相同的数据和列类型:

SELECT 
    Column1value, 
    Column2value, 
    Column3value, 
    Column4value
INTO TableB
FROM TableA

如果需要,可以使用下一个查询从TableA中获取列名:

SELECT 
    name
FROM 
    syscolumns 
WHERE
    id = (SELECT id  FROM sysobjects WHERE xtype='U' and NAME='TableA')
但是如果您只想将TableA复制到TableB,请使用

SELECT 
*
INTO TableB
FROM TableA

啊,好的元音数据库。。。。meta DB表中缺少一件事:哪个字段将“伪列”分组在一起,以便您知道数据属于单个实体。意思:你怎么知道姓氏史密斯和姓氏詹姆斯属于实体詹姆斯·史密斯?阿德里安,我假设在这个例子中这只是一个群体的全部。看起来最好的办法是让数据访问层生成表B。看看是否有可能编写一个查询来实现这一点。谢谢你的评论!问题是,如果有新的列,那么查询将无法工作。这些列需要从表A生成。我认为使用查询是不可能的。