SQL Server系统表介绍

#1SQL Server系统表
#2sysobjects 表
  在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

--SELECT * FROM sysobjects WHERE xtype = <type of interest>
--例如:查看视图
SELECT * FROM sysobjects WHERE xtype = 'V'
--例如:查看用户表
SELECT * FROM sysobjects WHERE xtype = 'U'

查询修改过的触发器、用户表

select objects.*
    from sys.objects as objects
    where objects.type  = 'TR' -- 返回触发器
    and modify_date >='2020-02-01'

-- 查询修改过的用户表    
select objects.*
    from sys.objects as objects
    where objects.type  = 'U' -- 返回用户表
    and modify_date >='2020-02-01'
    

查询一个用户表所有字段

   select *
    from sys.columns as columns left join sys.objects as objects
                  on columns.object_id = objects.object_id 
               left join sys.types as types
                  on columns.system_type_id = types.system_type_id 
    where objects.type  = 'U' -- 返回用户表
       and  objects.name = 'demo_wf' -- 表名

-- 字段类型表
select *
from  sys.types

判断数据库中是否已经存在某个表,有的话就删除该表

--方法一:
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 id = object_id(N'表名') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[表名]

--方法三:
if(Exists(Select * From SysObjects Where xtype='U' And Name='表名')) 
drop table [dbo].[表名]

--方法四
if OBJECT_ID('test_print','U') is not null
    drop table test_print
create table test_print(c1 varchar(100))

sql server系统表详细说明

sysaltfiles主数据库 保存数据库的文件
syscharsets主数据库字符集与排序顺序
sysconfigures主数据库 配置选项
syscurconfigs主数据库当前配置选项
sysdatabases主数据库服务器中的数据库
syslanguages主数据库语言
syslogins主数据库 登陆帐号信息
sysoledbusers主数据库 链接服务器登陆信息
sysprocesses主数据库进程
sysremotelogins主数据库 远程登录帐号
syscolumns每个数据库 列
sysconstrains每个数据库 限制
sysfilegroups每个数据库 文件组
sysfiles每个数据库 文件
sysforeignkeys每个数据库 外部关键字
sysindexs每个数据库 索引
sysmenbers每个数据库角色成员
sysobjects每个数据库所有数据库对象
syspermissions每个数据库 权限
systypes每个数据库 用户定义数据类型
sysusers每个数据库 用户

sysobjects 表 的表结构

列名数据类型描述
namesysname对象名,常用列
idint对象标识号
xtypechar(2)对象类型。常用列。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 = 扩展存储过程
uidsmallint所有者用户对象编号
infosmallint保留。仅限内部使用
statusint保留。仅限内部使用
base_schema_ verint保留。仅限内部使用
replinfoint保留。供复制使用
parent_objint父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。
crdatedatetime对象的创建日期。
ftcatidsmallint为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0
schema_verint版本号,该版本号在每次表的架构更改时都增加。
stats_schema_ verint保留。仅限内部使用。
typechar(2)对象类型。可以是下列值之一:
C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束
FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束
L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程
S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程
userstatsmallint保留。
sysstatsmallint内部状态信息
indexdelsmallint保留
refdatedatetime留用
versionint保留
deltrigint保留
instrigint保留
updtrigint保留
seltrigint保留
categoryint用于发布、约束和标识
cachesmallint保留

syscolumns 表结构

列名数据类型描述
namesysname列名或过程参数的名称。
idint该列所属的表对象 ID,或与该参数关联的存储过程 ID。
xtypetinyintsystypes 中的物理存储类型。
typestattinyint仅限内部使用。
xusertypesmallint扩展的用户定义数据类型 ID。
lengthsmallintsystypes 中的最大物理存储长度。
xprectinyint仅限内部使用。
xscaletinyint仅限内部使用。
colidsmallint列或参数 ID。
xoffsetsmallint仅限内部使用。
bitpostinyint仅限内部使用。
reservedtinyint仅限内部使用。
colstatsmallint仅限内部使用。
cdefaultint该列的默认值 ID。
domainint该列的规则或 CHECK 约束 ID。
numbersmallint过程分组时(0 表示非过程项)的子过程号。
colordersmallint仅限内部使用。
autovalvarbinary(255)仅限内部使用。
offsetsmallint该列所在行的偏移量;如果为负,表示可变长度行。
statustinyint用于描述列或参数属性的位图:
0x08 = 列允许空值。
0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。保留 varchar 列的尾随空格,保留 varbinary 列的尾随零。
0x40 = 参数为 OUTPUT 参数。
0x80 = 列为标识列。
typetinyintsystypes 中的物理存储类型。
usertypesmallintsystypes 中的用户定义数据类型 ID。
printfmtvarchar(255)仅限内部使用。
precsmallint该列的精度级别。
scaleint该列的小数位数。
iscomputedint表示是否已计算该列的标志:
0 = 未计算。
1 = 已计算。
isoutparamint表示该过程参数是否是输出参数:
1 = 真。
0 = 假。
isnullableint表示该列是否允许空值:
1 = 真。
0 = 假。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值