失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > SQL SERVER 获取表结构信息《转载》

SQL SERVER 获取表结构信息《转载》

时间:2024-05-10 19:31:17

相关推荐

SQL SERVER 获取表结构信息《转载》

获取表信息

SELECT

表名= case when a.colorder=1 then d.name else '' end,

表说明= case when a.colorder=1 then isnull(f.value,'') else '' end,

字段名= a.name,

主键= case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (

SELECT name FROM sysindexes WHERE indid in(

SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,

类型= b.name,

占用字节数 = a.length,

长度= COLUMNPROPERTY(a.id,a.name,'PRECISION'),

默认值= isnull(e.text,''),

字段说明= isnull(g.[value],'')

FROM

syscolumns a

left join

systypes b

on

a.xusertype=b.xusertype

inner join

sysobjects d

on

a.id=d.idand 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

left join

sysproperties f

on

d.id=f.id and f.smallid=0

where

d.name='LW_Equipment_Stock_List'--如果只查询指定表,加上此条件

获取表内所有字段

Select NameFrom SysColumns Where ID=OBJECT_ID('TableName') Order By ColID

下边是关于Sysobjects的介绍

经常我们要查询表的索引,约束,相关性,触发器的属性,那么要知道sysobjects这个表的字段的意思,那么不管要查什么都没有问题!

Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。以下是此系统表的字段名称和相关说明。

Name,id,xtype,uid,status:分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。

对象类型(xtype)。可以是下列对象类型中的一种:

C = CHECK 约束

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程

S = 系统表

TF = 表函数

TR = 触发器

U = 用户表

UQ = UNIQUE 约束(类型是 K)

V = 视图

X = 扩展存储过程

当xtype='U' and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。

用: select * from misa.dbo.sysobjects where xtype='U'and status>0 就可以列出库misa中所有的用户建立的表名。

SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'

列出表cs的所有属性,上面是trigger!

如果觉得《SQL SERVER 获取表结构信息《转载》》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。