sql server2008怎么实现查询某个数据库中所有的表名

sql server2008怎么实现查询某个数据库中所有的表名,第1张

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

-- 名名称和字段名

SELECT

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

a.colorder 字段序号,

a.name 字段名,

(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,

(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) 主键,

b.name 类型,

a.length 占用字节数,

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

isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,

(case when a.isnullable=1 then '√'else '' end) 允许空,

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

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

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 sys.extended_properties g on a.id=g.major_id AND a.colid = g.minor_id

order by a.id,a.colorder

在安装了sql

server

2008的系统共中将创建4个可见系统数据库:master、model、msdb、tempdb

master数据库

master数据库是sql

server中最重要的数据库,它是sql

server的核心数据库,如果该数据库被损坏,sql

server将无法正常工作,master数据库中包含所有的登录名或用户id所属的较角色、服务器中的数据库的名称及相关的信息、数据库的位置、sql

server如何初始化四个方面的重要信息。

model数据库

用户创建数据库时是以一套预定义的标准为模型。例如,若希望所有的数据库都有确定的初始大小,或者都有特定的信息集,那么可以吧这些信息放在model数据库中,以model数据库作为其他数据库的模板数据库。如果想要使用所有的数据库都有一个特定的表,可以把该表放在model数据库里。

model数据库是tempdb数据库的基础。对model数据库的任何改动都将反映在tempdb数据库中,所以,在决定对model数据库有所改变时,必须预先考虑好

msdb数据库

msdb数据库给sql

server代理提供必要的信息来运行作业,因而它是

sql

server中另一个十分重要的数据库。

tempdb数据库

tempdb数据库用作系统的临时存储空间,其主要作用是存储用户建立的临时表和临时存储过程,存储用户说明的全局变量值,为数据排序创建临时表,存储用户利用游标说明所筛选出来的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6759248.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存