注册账号 登录
用友之家-用友软件论坛 返回首页

wozengcong的个人空间 https://www.oyonyou.com/?242966 [收藏] [复制] [分享] [RSS]

日志

SQL Server判断对象是否存在 (if exists (select * from sysobjects )(转)

热度 1已有 671 次阅读2012-7-5 23:54 |个人分类:SQL数据库资料| status, 触发器, 相关性

  经常我们要查询表的索引,约束,相关性,触发器的属性,那么要知道sysobjects这个表的字段的意思,那么不管要查什么都没有问题!

  Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。以下是此系统表的字段名称和相关说明。

  Name,id,xtype,uid,status:分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。

  对象类型(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 = 扩展存储过程

  当xtype='U' and status>0代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。

  用: select * from misa.dbo.sysobjects where xtype='U' and status>0 就可以列出库misa中所有的用户建立的表名。

  SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'

  列出表cs的所有属性,上面是trigger!

路过

雷人

握手
1

鲜花

鸡蛋

刚表态过的朋友 (1 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册账号

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-6-5 14:55 , Processed in 0.020249 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部