理解SQL Server系统表sysobjects
关于SQL Server数据库的一切信息都保存在它的系统表格里。
Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。以下是此系统表的字段名称和相关说明。
Name,id,xtype,uid,status:分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。
在大多数情况下,对你最有用的两个列是sysobjects.name和sysobjects.xtype。前面一个用来列出待考察对象的名字,而后一个用来定义对象的类型,其代码如下:
C:检查约束。
D:默认的约束
F:外键约束
L:日志
P:存储过程
PK:主键约束
RF:复制过滤存储过程
S:系统表格
TR:触发器
U:用于表格。
UQ:独特的约束。
V:视图
X:被扩展的存储过程
当xtype='U' and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。
例:
存储过程:
go
if object_id(存储过程名称(例:'PXXXX'),'p') is not null
drop proc 存储过程名称
cret proc 存储过程名称
。。。
函数:
go
if object_id('FXXX','FN') is not null
drop function 函数名称
create function 函数名称
...
视图:
go
if object_id('VXXXX','V') is not null
drop view 视图名称
create view 视图名称
......