SQLServer系统表使用简介(sysobjects、sysc

2019-06-04  本文已影响0人  sky_47

在SQLServer的日常使用中,我们一般对建立的表及其内容进行操作。有时也需要进行一些查询,例如哪些表有xxx字段。我们便会可以用一些系统系统表进行操作查询。
sysobjects:记录了数据库中每一个表、视图、约束、存储过程等详细内容的表。
表中常用的字段如下 :

列名 数据类型 描述
name sysname 对象名
id int 对象标识号
xtype char(2) 对象类型,C=CHECK约束 D=默认值或DEFAULT约束 F=FOREIGN KEY约束 L=日志 FN=标量函数 IF=内嵌表函数 P=存储过程 PK=主键约束 RF=复制筛选存储过程 S=系统表 TF=表函数 TR=触发器 U=用户表 UQ=UNIQUE约束 V=视图 X=扩展存储过程
parent_obj int 父对象的对象标识号
crdate datetime 对象创建日期

object_id('obj_name',‘obj_type’)函数:参数类型为varchar或nvarchar,如果是varchar,系统自动转为nchar。返回值是obj_name在sysobjects表中的对应id。若未找到对应的obj_name,则返回NULL。
object_name()函数:参数类型为int,传入sysobjects表中的id,返回sysobjects表中的name。

--判断表是否已经存在于数据库中,如果有,则删除表。
if Exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[表名]

if(Exists(select * From sysobjects Where xtype='U' And Name='表名')) 
drop table [dbo].[表名]

syscolumns:记录表、视图中的字段,以及存储过程中的参数。
表中常用的字段如下 :

列名 数据类型 描述
name sysname 字段名称
id int 字段所属表id
xtype char(2) 字段类型
length smallint 字段物理存储长度

syscomments
表中常用的字段如下 :

列名 数据类型 描述
id int 对象对应sysobjects表中的id
text nvarchar(4000) SQL定义的文本

若存储过程等SQL语句超过4000,可以使用sp_helptext @pro_name获取存储过程的全部内容。

引用:SQL Server系统表sysobjects介绍与使用--博客园
SQL Server文档

上一篇 下一篇

猜你喜欢

热点阅读