解决方案 »

  1.   

    这种需求肯定是用程序解决啊。用SQL实现不仅复杂,而且效率也不高。
      

  2.   

    建议在程序上写,不然如果在程序上不想一一写列名的话,也还是要反射~~以下提供一个和上次一样的,动态执行DECLARE @STR NVARCHAR(MAX)
    SET @STR=''
    SELECT @STR=@STR+'+''\"'+name+'\":\"''+CAST('+name+' AS VARCHAR)+''\"'''
    FROM SYS.SYSCOLUMNS
    WHERE id=OBJECT_ID('TB')
        --AND name NOT IN('','')--可以把不要的列名去掉
    SET @STR='DECLARE @STR NVARCHAR(MAX);SELECT @STR=ISNULL(@STR+'' "{'',''"{'')+'+STUFF(@STR,1,1,'')+'+''}"'' FROM TB;SELECT @STR+''"'''
    --PRINT @STR--以下动态执行
    EXEC(@STR)我想应该是要给JSON用的,建议你调整成数组