SQL Server系统表sysobjects介绍与使用
关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器。你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工。
这就让sysobjects表格有了用武之地。虽然我不建议你更新这个表格,但是你当然有权对其进行审查。
sysobjects 表
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
sysobjects 表结构:
列名 | 数据类型 | 描述 |
name | sysname | 对象名,常用列 |
id | int | 对象标识号 |
xtype | char(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 = 扩展存储过程 |
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) |
对象类型。可以是下列值之一: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程 |
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 of interest> --例如:查看视图 SELECT * FROM sysobjects WHERE xtype = 'V'
判断数据库中是否已经存在某个表,有的话就删除该表
--方法一: 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].[表名]
以后继续补充。
某些朋友的一些疑问:
1、问:object_id(N'表名')中N'代表什么意思?
答:N'' 代表 Unicode类型.可以支持不同语种的对象名
2、 问:select * from dbo.sysobjects where id = object_id(N'[dbo].[usertab]') and OBJECTPROPERTY(id, N'IsUserTable') = 1
这句中的object_id(N'[dbo].[usertab]')和OBJECTPROPERTY(id, N'IsUserTable') = 1
是什么意思?
答:object_id(N'[dbo].[usertab]'):是得出系统给表usertab分配的唯一ID
OBJECTPROPERTY(id, N'IsUserTable') = 1
该对象的属性是表类型的 objectproperty(id,property)函数的使用,
3、 问:USE master SELECT * FROM ...SysObjects ” ...sysobjects ” -- 三个句点的前缀是什么意思?
答:对数据库对象名的 Transact-SQL 引用可以是由四部分组成的名称,格式如下:[ server_name.[[database_name].[owner_name]. | database_name.[owner_name]. | owner_name.] ] object_name
未完待续(XX尚未成功,后面要靠大家了)……
转载于:https://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html
SQL Server系统表sysobjects介绍与使用相关推荐
- SQL SERVER系统表
系统表查看 SQL SERVER系统表在系统数据库master中,其实确切的说这些系统表是视图,可以在master库下的视图下查看 常用系统表及功能 sysaltfiles 主数据库 保存数据库的文件 ...
- sql server 系统表 介绍
sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选 ...
- SQL Server 系统表介绍:sys.dm_exec_sessions
针对 SQL Server 上的每个经过身份验证的会话返回一行.sys.dm_exec_sessions 是服务器范围的视图,显示了有关所有活动用户连接和内部任务的信息.此信息包含客户端版本.客户端程 ...
- sql server系统表详细说明(转)
sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选 ...
- sql server系统表详细说明(二)(摘)
sysaltfiles 在特殊情况下,包含与数据库中的文件相对应的行.该表存储在 master 数据库中. 列名 数据类型 描述 fileid smallint 每个数据库的唯一文件标识号. grou ...
- 2.SQL SERVER笔记——SQL SERVER系统概念
2.SQL SERVER笔记--SQL SERVER系统概念 系统数据库 数据库管理员(DBA)的一项基本的技能是对SQL数据库引擎的系统数据库的深刻理解.数据库开发人员了解SQLSERVER自带的系 ...
- sql server2008系统表详细说明sys.开头的表
sql server2008系统表详细说明sys.开头的表 一.库里有多少个表,表名等 select * from INFORMATION_SCHEMA.TABLES 二.查询表.字段.类型.是否主键 ...
- 应用事件探查器优化SQL Server系统[转]
应用事件探查器优化SQL Server系统 关键词:Mssql,,概述 当你的SQL Server数据库系统运行缓慢的时候,你或许多多少少知道可以使用SQL Server Profiler(中文叫SQ ...
- php从注册列表卸载,MSSQL_彻底删除SQL Server注册表的方法,一般在卸载完数据库时,大家 - phpStudy...
彻底删除SQL Server注册表的方法 一般在卸载完数据库时,大家都希望能够将注册表信息完全删干净,下面就将教您彻底删除SQL Server注册表的方法,供您参考. 在卸载SQL Server开始- ...
最新文章
- LeetCode 973. K Closest Points to Origin--TopK 问题--最小堆--C++,Python解法
- 内核线程、轻量级进程、用户线程
- 【必备】jQuery性能优化的38个建议
- java 图片压缩 base64_图片改变像素,宽高,Base64编码处理
- helm安装_Helm部署和体验jenkins
- sql server 群集_SQL Server中的Microsoft群集
- python抓取疫情数据_python 爬取疫情数据
- SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
- 南阳理工acm,水仙花数
- 群晖NAS教程(十二)、利用Web Station安装Chevereto图床
- 用python做youtube自动化下载器 代码
- Java参数校验工具validation
- 制作价目表用什么软件
- 网络营销中词条推广的价值和注意事项
- tokenizer()和tokenizer.encode_plus()的区别
- python实现简单购物商城_python实现简单购物商城
- 海海软件发布HHMeet Windows 测试版- 轻松加密保护Zoom视频会议-直播防翻录
- 5-黑马旅游网-线路查询
- javascript 一些常用的正则表达式(手机号码,邮箱,整数,身份证号码,车牌号,中文,只能是字母或者数字)
- 问题 A: 电路维修
热门文章
- c语言中的if语句_If ... C中的其他语句解释
- vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。
- Docker的使用(五:Docker中的网络与数据管理)
- 登高自卑 | 我的PyTorch入门与实践笔记
- JavaScript 立即执行函数的两种写法
- 企业分布式微服务云SpringCloud SpringBoot mybatis - 服务消费者(Feign)
- 为什么很努力进步却不明显
- 10进制转换为二十六进制字符串A-Z
- 前端工程师成长之多读好书
- L09-10老男孩Linux运维实战培训-Nginx服务生产实战应用指南05(架构解决方案)