2024年4月15日发(作者:)

SQL系统视图,系统表,系统存储过程的使用

获取数据库中用户表信息

1、获取特定库中所有用户表信息

select * from

select * from s

where type='U'

--用户表

第二条语句中当type='S'时是系统表

2、获取表的字段信息

select * from s where object_id=object_id('表名')

select * from syscolumns where id=OBJECT_ID('表名' )

3、获取当前库中表的字段及类型信息

(1)

select '字段名'=,

'类型名'=,

'字段长度'=_length,

'参数顺序'=_id

from s a left join b

on _type_id=_type_id

where object_id=object_id('表名')

syscolumns与s表用法类似。

获取索引或主键信息

1、 获取对象及对应的索引的信息

select '对象名'=,

'对象类型'=,

1

'索引名'=,

'索引类型'=case when 1 then '聚集索引'

when 2 then '非聚集索引'

when 3 then 'xml索引'

else '空间索引' end,

'主键否'=case when _primary_key=1 then '主键'

else '' end

FROM s A JOIN s B ON _id=_id

WHERE ='U' AND IS NOT NULL order by

2、 获取表的主键及对应的字段

(1)

select '表名'= ,'主键名'=,'字段名'=

from s a join _columns b

on _id=_id and _id=_id

join s c on _id=_id and

_id=_id

join s d on _id=_id

where _primary_key=1

(2)

SELECT '表名'=OBJECT_NAME(_obj),

'主键名'=,

'字段名'=

FROM syscolumns a,sysobjects b,sysindexes c,sysindexkeys d

WHERE = 'PK' AND _obj = AND =

2