ck1987 发表于 2016-11-4 10:10:55

SQL Server 2005获取某个表的创建时间

  在SQL Server 2005数据库中,想要获取某个表的创建时间,是今天我在百度问答中碰到的问题。本来还以为不能回答出来了,想不到在网上找找,自己试试,还真最终找到了解决问题的方法。从中也说明了,网路的力量还是蛮大的,什么东西都能在网路上找到;还有不可缺少的是自己的试验。
  
  其实问题是很好解决的,如下:
  因为数据库中的对象的信息都是放在系统试图sys.sysobjects中的,见名知意。主要是要对这个试图中的字段的意思要理解。那我在这里就讲一下数据库中的某个用户表的创建时间的获取。

use databasename
go
select crdate as '创建时间' from sysobjects where name = 'tablename'
  就是如此简单!
  其中就讲一下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!
  
页: [1]
查看完整版本: SQL Server 2005获取某个表的创建时间