日期:2014-05-17 浏览次数:20537 次
T1 FID VCHAR1 VCHAR2 VCHAR3 VCHAR4 VCHAR5 1 李江 男 读书 11 在哪 T2 FID FTABLE FFieldName FFieldTitle FFieldType 1 T1 VCHAR1 姓名 文本框 2 T1 VCHAR2 性别 下拉框 3 T1 VCHAR3 爱好 多选框 4 T1 VCHAR4 地址 文本框 想要的结果 TT FFieldName FFieldValue FFieldType VCHAR1 李江 文本框 VCHAR2 性别 下拉框 VCHAR3 爱好 多选框 VCHAR4 地址 文本框
IF NOT OBJECT_ID('Class') IS NULL 
   DROP TABLE Class
Go
CREATE TABLE Class
       (
         [Student] NVARCHAR(2) ,
         [数学] INT ,
         [物理] INT ,
         [英语] INT ,
         [语文] INT
       )
INSERT  Class
        SELECT  N'李四', 77, 85, 65, 65
        UNION ALL
        SELECT  N'张三', 87, 90, 82, 78
Go
--2000
DECLARE @s NVARCHAR(4000)
SELECT  @s = ISNULL(@s + ' union all ', '') + 'select [Student],[Course]=' + QUOTENAME(Name, '''')--isnull(@s+' union all ','') 去掉字符串@s中第一个union all
        + ',[Score]=' + QUOTENAME(Name) + ' from Class'
FROM    syscolumns
WHERE   ID = OBJECT_ID('Class')
        AND Name NOT IN ( 'Student' ) --排除不转换的列
ORDER BY Colid
EXEC('select * from ('+@s+')t ')
------解决方案--------------------