找回密码
 注册
搜索
热搜: java php web
查看: 2447|回复: 6

SQL--如何获得一个数据表的所有列名

[复制链接]
发表于 2009-1-26 06:18:27 | 显示全部楼层 |阅读模式
方法如下:先从SYSTEMOBJECT系统表中取得数据表的SYSTEMID,然后再SYSCOLUMN表中取得该数据表的所有列名。

SQL语句如下:
declare @objid int,@objname char(40)
set @objname = 'tablename'
select @objid = id from sysobjects where id = object_id(@objname)
select 'Column_name' = name from syscolumns where id = @objid order by colid

自己修改如下,可以直接放到JSP中执行
SELECT name
FROM syscolumns
WHERE (id =
(SELECT id
FROM sysobjects
WHERE (id = OBJECT_ID('YOURTABLENAME'))))
ORDER BY colid
发表于 2009-1-26 07:28:39 | 显示全部楼层
是原創么﹖我仰望著天﹐只因為低頭看不見路




好書是頂起來的﹐希望大家多多頂我﹐:)
回复

使用道具 举报

发表于 2009-1-26 07:41:05 | 显示全部楼层
也可以这么写
select *
from information_schema.columns
回复

使用道具 举报

发表于 2009-1-26 07:05:35 | 显示全部楼层
好方法,谢谢
回复

使用道具 举报

发表于 2009-1-26 07:20:31 | 显示全部楼层
不错!!!!!
回复

使用道具 举报

 楼主| 发表于 2009-1-26 07:32:10 | 显示全部楼层
给你帖个详细的,表名自己过滤

SELECT TOP 100 PERCENT dbo.sysobjects.name AS TableName,
      dbo.syscolumns.colid AS FieldIndex, dbo.syscolumns.name AS FieldName,
      dbo.sysproperties.[value] AS Describe, dbo.systypes.name AS FieldType,
      dbo.syscolumns.length AS FieldSize, dbo.syscolumns.isnullable AS AllowNull
FROM dbo.syscolumns INNER JOIN
      dbo.systypes ON dbo.syscolumns.xtype = dbo.systypes.xtype INNER JOIN
      dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id LEFT OUTER JOIN
      dbo.sysproperties ON dbo.syscolumns.id = dbo.sysproperties.id AND
      dbo.syscolumns.colid = dbo.sysproperties.smallid
WHERE (dbo.sysobjects.xtype = 'U') AND (dbo.sysobjects.name <> 'dtproperties')
ORDER BY dbo.sysobjects.name, dbo.syscolumns.colid
回复

使用道具 举报

发表于 2009-1-26 07:58:35 | 显示全部楼层
超级感谢 正在需要呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-9-20 15:44

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表