SQL Server系统表sysobjects介绍与使用
来源:互联网 发布:矩阵的幂运算法则 编辑:程序博客网 时间:2024/05/21 10:52
关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器。你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工。
这就让sysobjects表格有了用武之地。虽然我不建议你更新这个表格,但是你当然有权对其进行审查。
sysobjects 表
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
sysobjects 表结构:
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保留。仅限内部使用 replinfo int保留。供复制使用 parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 crdate datetime 对象的创建日期。 ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0 schema_ver int 版本号,该版本号在每次表的架构更改时都增加。 stats_schema_ ver int 保留。仅限内部使用。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 内部状态信息 indexdel smallint 保留 refdate datetime 留用 versionint 保留deltrig int 保留 instrigint 保留 updtrigint 保留 seltrigint 保留 category int 用于发布、约束和标识 cachesmallint 保留
你可以用下面的命令列出感兴趣的所有对象:
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
转载自:http://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html
- SQL Server系统表sysobjects介绍与使用
- SQL Server系统表sysobjects介绍与使用
- SQL Server系统表sysobjects介绍与使用
- SQL Server系统表sysobjects介绍与使用
- SQL Server系统表sysobjects介绍与使用
- 【转自《一棵树-博客园》】SQL Server系统表sysobjects介绍与使用
- SQL Server系统表sysobjects
- 理解SQL Server系统表sysobjects
- 理解SQL Server系统表sysobjects(摘)
- 理解SQL Server系统表sysobjects
- SQL Server sysobjects 系统表说明
- SQL Server 常用系统表(一) sysobjects
- 关于SQL Server中的系统表——sysobjects
- sql server 系统表sysobjects、sysindexes、syscolumns损坏修复方法
- 【数据库】sql server中的sys.sysobjects系统表
- SQL Server sysobjects 表结构
- SQL Server sysobjects 表结构
- SQL系统表sysobjects和syscolumns字段属性介绍
- ubuntu lnmp 添加 mongodb 扩展
- 插入查询用户以及建立关系
- mac 当前位置打开终端
- 百度消息推送点击跳转到指定界面的实现
- HDU 1043 && POJ 1077 Eight bfs || 双向bfs || A*搜索
- SQL Server系统表sysobjects介绍与使用
- epoll总结
- 在单元测试hibernate的一对多多对一映射遇到异常
- Hololens开发 初级系列 -3 HoloWorld
- Stars(树状数组)
- Spring中@Autowired注解、@Resource注解的区别
- java判断URL协议自动补全HTTP(S)
- View学习(一)--坐标系
- c:if选择标签