关于SQL Server数据库的一切信息都保存在它的系统表格里。
在大多数情况下,对你最有用的两个列是Sysobjects.name和Sysobjects.xtype。前面一个用来列出待考察对象的名字,而后一个用来定义对象的类型
sysobjects
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
要想查看你的数据库中是否存在Employee表,如果没有则创建,如下:
if exists (select *
from sysobjects
where id=object_id(N'[dbo].[Employee]') and OBJECTPROPERTY(id,N'IsUserTable')=1)
drop table Employee
go
create table Employee(
IDintnot null,
EmployeeNamenvarchar(10) null,
Addressnvarchar(50) null,
constraint PK_EMPLOYEE primary key(ID)
)
go
以上的语句中:
object_id(N'[dbo].[Employee]')
意思是得到系统表给Employee表分配的唯一ID,其中N代表Unicode,可以支持不同语种的对象名
OBJECTPROPERTY(id,N'IsUserTable')=1
该id对应对象的属性是用户表类型的(IsUsertable)
如果觉得《SQL Server 中 sysobjects表》对你有帮助,请点赞、收藏,并留下你的观点哦!