使用jQuery显示SQL表中的列标题和行

时间:2011-10-18 20:40:50

标签: jquery sql-server-2008

我正在尝试使用jQuery

显示SQL Server表中的列和行

我选择了SELECT * FROM table1的表格,所以我不知道列标题是什么,除非我将它们与sys.columns分开。 select语句的输出也以XML格式输出以对抗XSS。

我如何选择列

SELECT c.column_id, c.name, y.system_type_id, y.name AS system_type_name
FROM sys.columns AS c
JOIN sys.types AS y ON c.system_type_id = y.system_type_id
JOIN sys.tables AS t ON c.object_id = t.object_id
WHERE y.name NOT LIKE 'sysname' 
AND t.object_id = '1234567890'
FOR XML RAW, TYPE, ROOT('rows');

示例XML输出

<rows>
  <row column_id="1" name="id" system_type_id="56" system_type_name="int" />
  <row column_id="5" name="added" system_type_id="61" system_type_name="datetime" />
  <row column_id="4" name="allowlogin" system_type_id="104" system_type_name="bit" />
  <row column_id="3" name="pw" system_type_id="165" system_type_name="varbinary" />
  <row column_id="2" name="un" system_type_id="231" system_type_name="nvarchar" />
</rows>

我如何选择行

SELECT * FROM table1 FOR XML RAW, TYPE, ROOT('rows')

我无法弄清楚(可能是因为它已经晚了)如何做到这一点。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望列名在单个字符串中,如下所示:field1,field2,field3 ......

如果是这种情况,你可以这样做:

SELECT STUFF((SELECT ','+name FROM YourDatabaseName.sys.columns WHERE object_id = OBJECT_ID('YourTableName') ORDER BY column_id FOR XML PATH('')),1,1,'') 

希望有所帮助!