请问如何 取得一个未知表中字段名称的前3列 急在线等!!!!!!!

1er 2006-06-22 05:26:27
就是说 一个表 有多少个字段 和 字段的名字都是未知的 但是固定的要取出前3列 请问如何解决,谢谢!
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2006-06-22
  • 打赏
  • 举报
回复
利用OBJECT_ID系统函数来获取表对象的ID当然更简洁.hehe
yjdn 2006-06-22
  • 打赏
  • 举报
回复
其中BIChoose为表名
yjdn 2006-06-22
  • 打赏
  • 举报
回复
--系统表中有一个列ID字段,根据列ID排序再取前三个字段即可

select top 3 name
from syscolumns where
id= object_id('BIChoose')
order by colid
hellowork 2006-06-22
  • 打赏
  • 举报
回复
楼上的是正解。
fcuandy 2006-06-22
  • 打赏
  • 举报
回复
DECLARE @n CHAR(100),@fields VARCHAR(1024)
SET @n='MyTABLE' --设置为你的表名
SET @fields=''
SELECT @fields=@fields + ',' + name FROM
(
SELECT TOP 3 sc.name FROM
sysobjects sb
INNER JOIN
syscolumns sc
ON sc.id=sb.id
WHERE sb.xtype='u' AND sb.name=@n
ORDER BY sc.colorder
) base

SELECT @fields=STUFF(@fields,1,1,'')

EXEC ('SELECT ' + @fields + ' FROM ' + @n)
1er 2006-06-22
  • 打赏
  • 举报
回复
不是要前3列的名字 是要前3列数
fcuandy 2006-06-22
  • 打赏
  • 举报
回复
DECLARE @n CHAR(100)
SET @n='MyTable' --设置为你的表名

SELECT TOP 3 sc.name FROM
sysobjects sb
INNER JOIN
syscolumns sc
ON sc.id=sb.id
WHERE sb.xtype='u' AND sb.name=@n
ORDER BY sc.colorder

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧