SQL查询 - sys相关:sysObjects表中xtype字段值的含义

  • 1.获取所有数据库名
SELECT Name FROM Master..SysDatabases ORDER BY Name
  • 2.获取所有表名
SELECT Name FROM DatabaseName..SysObjects Where XType='U' ORDER BY Name 
--XType='U':表示所有用户表;  XType='S':表示所有系统表;
  • 3.获取所有字段名
SELECT Name FROM SysColumns WHERE id=Object_Id('TableName')
  • 4.查询数据库中无数据的数据表
select sys.objects.name from sys.objects join sys.sysindexes on sys.objects.object_id=sys.sysindexes.id
where indid<=2 and type='U'
group by sys.objects.name
having SUM(rows)=0
  • 5.重新编译存储过程 ,解决在sql中执行快但程序调用执行慢的原因
EXEC sys.recompile @objname='存储过程名称' 
原因分析:执行计划过期
由于存储过程是预编译的, 在第一次执行的时候, 会生成执行计划, 以后执行的时候, 会使用这个执行计划(除非存储过程侯或者显示指定重新编译), 而不是每次执行时都去生成执行计划。
当存储过程涉及的对象结构调整, 或者相关的数据产生了很大变化, 这可能导致原来的计划不适合当前的现状(执行计划过期), 这种情况下应该重新编译存储过程.

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

Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。
以下是此系统表的字段名称和相关说明。
Name,id,xtype,uid,status:分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。
对象类型(xtype)。可以是下列对象类型中的一种:

  • AF = Aggregate function (CLR)
  • C = CHECK constraint
  • D = Default or DEFAULT constraint
  • F = FOREIGN KEY constraint
  • L = Log
  • FN = Scalar function
  • FS = Assembly (CLR) scalar-function
  • FT = Assembly (CLR) table-valued function
  • IF = In-lined table-function
  • IT = Internal table
  • P = Stored procedure
  • PC = Assembly (CLR) stored-procedure
  • PK = PRIMARY KEY constraint (type is K)
  • RF = Replication filter stored procedure
  • S = System table
  • SN = Synonym
  • SQ = Service queue
  • TA = Assembly (CLR) DML trigger
  • TF = Table function
  • TR = SQL DML Trigger
  • TT = Table type
  • U = User table
  • UQ = UNIQUE constraint (type is K)
  • V = View
  • X = Extended stored procedure

当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!

refer:http://blog.csdn.net/jackmacro/article/details/6405871

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值