怎样用sql列出一个表的所有字段?

Csharp 2003-06-24 08:53:33
多谢了!
...全文
740 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
dafu71 2003-08-19
  • 打赏
  • 举报
回复
use 'yourdatabase'
exec sp_columns 'yourtable'
flashasp 2003-08-19
  • 打赏
  • 举报
回复
select name from syscolumns where id=object_id('TableName')'列出表里的所有的字段名
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'字段序号',
a.name N'字段名',
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) N'主键',
b.name N'类型',
a.length N'占用字节数',
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
(case when a.isnullable=1 then '√'else '' end) N'允许空',
isnull(e.text,'') N'默认值',
isnull(g.[value],'') AS N'字段说明'
--into ##tx

FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g.smallid
order by object_name(a.id),a.colorder
pengdali 2003-08-19
  • 打赏
  • 举报
回复
名称 地址 说明
sysaltfiles 主数据库 保存数据库的文件
syscharsets 主数据库 字符集与排序顺序
sysconfigures 主数据库 配置选项
syscurconfigs 主数据库 当前配置选项
sysdatabases 主数据库 服务器中的数据库
syslanguages 主数据库 语言
syslogins 主数据库 登陆帐号信息
sysoledbusers 主数据库 链接服务器登陆信息
sysprocesses 主数据库 进程
sysremotelogins主数据库 远程登录帐号

syscolumns 每个数据库 列
sysconstrains 每个数据库 限制
sysfilegroups 每个数据库 文件组
sysfiles 每个数据库 文件
sysforeignkeys 每个数据库 外部关键字
sysindexes 每个数据库 索引
sysmenbers 每个数据库 角色成员
sysobjects 每个数据库 所有数据库对象
syspermissions 每个数据库 权限
systypes 每个数据库 用户定义数据类型
sysusers 每个数据库 用户
pengdali 2003-08-19
  • 打赏
  • 举报
回复
select name 列 from syscolumns where id=object_id('Table2')
蓝天 2003-08-19
  • 打赏
  • 举报
回复
这么老的帖子?呵呵
july 2003-08-18
  • 打赏
  • 举报
回复
select name from syscolumns where id = object_id("your table name")
shaken 2003-06-25
  • 打赏
  • 举报
回复
to:大力
sysproperties
这个是系统表吗????
happymingnan 2003-06-24
  • 打赏
  • 举报
回复
up
fckadxz 2003-06-24
  • 打赏
  • 举报
回复
up
pengdali 2003-06-24
  • 打赏
  • 举报
回复
select rtrim(b.name) as colname
,case when h.id is not null then 'PK' else '' end as primarykey
,type_name(b.xusertype) + case when b.colstat & 1 = 1 then '[ID(' + convert(varchar,ident_seed(a.name)) + ',' + convert(varchar,ident_incr(a.name)) + ')]' else '' end as type
,b.length
,case b.isnullable when 0 then 'N' else 'Y' end as [isnull]
,isnull(e.text,'') as [default]
,isnull(c.value,'') as descript
from sysobjects a,syscolumns b
left outer join sysproperties c on b.id = c.id and b.colid = c.smallid
left outer join syscomments e on b.cdefault = e.id
left outer join (select g.id,g.colid from sysindexes f,sysindexkeys g where f.id = g.id and f.indid = g.indid and f.indid > 0 and f.indid < 255 and (f.status & 2048)<>0) h on b.id = h.id and b.colid = h.colid
where a.id = b.id
and a.id = object_id('titles') --tablename改成你要导出的表的名称
order by b.colid
月光易水 2003-06-24
  • 打赏
  • 举报
回复
select [name] from [syscolumns] where [id] = object_id('tblimage')


:_)
zjcxc 元老 2003-06-24
  • 打赏
  • 举报
回复
直接从syscolumns表中获取就行了:
select name from syscolumns where id = object_id('你要查的表') and objectproperty(id,'IsUserTable')=1
hbwhwanghua 2003-06-24
  • 打赏
  • 举报
回复
从系统表里直接可以取的,系统表名忘了,你查一下帮助!
蓝天 2003-06-24
  • 打赏
  • 举报
回复
select name from syscolumns where id = object_id('table_name')

34,576

社区成员

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

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