SQL server系统表
关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器。你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工。
这就让sysobjects表格有了用武之地。虽然我不建议你更新这个表格,但是你当然有权对其进行审查。
sysobjects 表结构:
列名 |
数据类型 |
描述 |
name |
sysname |
对象名,常用列 |
id |
int |
对象标识号 |
xtype |
char(2) |
对象类型。常用列。xtype可以是下列对象类型中的一种: |
uid |
smallint |
所有者用户对象编号 |
info |
smallint |
保留。仅限内部使用 |
status |
int |
保留。仅限内部使用 |
base_schema_ ver |
int |
保留。仅限内部使用 |
replinfo |
int |
保留。供复制使用 |
parent_obj |
int |
父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 |
crdate |
datetime |
对象的创建日期。 |
ftcatid |
smallint |
为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0 |
schema_ver |
int |
版本号,该版本号在每次表的架构更改时都增加。 |
stats_schema_ ver |
int |
保留。仅限内部使用。 |
type |
char(2) |
对象类型。可以是下列值之一: |
userstat |
smallint |
保留。 |
sysstat |
smallint |
内部状态信息 |
indexdel |
smallint |
保留 |
refdate |
datetime |
留用 |
version |
int |
保留 |
deltrig |
int |
保留 |
instrig |
int |
保留 |
updtrig |
int |
保留 |
seltrig |
int |
保留 |
category |
int |
用于发布、约束和标识 |
cache |
smallint |
保留 |
你可以用下面的命令列出感兴趣的所有对象:
SELECT * FROM sysobjects WHERE xtype= <type ofinterest>
--例如:查看视图
SELECT * FROM sysobjects WHERE xtype= 'V'
判断数据库中是否已经存在某个表,有的话就删除该表