select * from dbo.sysobjects where type not in('S','D','K')

详解:
select * from dbo.sysobjects where type not in('S','D','K')
('S','D','K') 值
xtype char(2) 对象类型。可以是下列对象类型中的一种:
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 = 扩展存储过程

在大多数情况下,对你最有用的两个列是sysobjects.name和sysobjects.type,sysobjects.xtype。前面一个用来列出待考察对象的名字,而后一个用来定义对象的类型,其代码如下:
Type是在6.0就有的,XType在7.0才出现:
Type
对象类型。可以是下列值之一:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
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 = 扩展存储过程
注意一:
在碰到触发器的情形下,用来识别触发器类型的其他三个列是:deltrig、instrig和uptrig。
你可以用下面的命令列出感兴趣的所有对象:
SELECT * FROM sysobjects WHERE xtype =
在特殊情况下,也就是在父表格拥有触发器的情况下,你可能想要用下面这样的代码查找数据库:
SELECT
Sys2.[name] TableName,
Sys1.[name] TriggerName,
CASE
WHEN Sys1.deltrig > 0 THEN’Delete’
WHEN Sys1.instrig > 0 THEN’Insert’
WHEN Sys1.updtrig > 0 THEN’Update’
END’TriggerType’
FROM
sysobjects Sys1 JOIN sysobjects Sys2 ON Sys1.parent_obj = Sys2.[id]
WHERE Sys1.xtype=’TR’
ORDERBY TableName
注意二:SQL Server 2005及2008版本,首选的技术是使用系统视图
这种方式会把你的查询同微软选择对系统表格进行的任何改变隔绝开来。
下面的语句,它们列出所有用户表
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
ORDER BY TABLE_SCHEMA, TABLE_NAME
下面的语句,它们列出所选数据库里所有的函数和存储过程。
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
ORDER BY ROUTINE_TYPE, ROUTINE_NAME
下面的语句,列出所有表字段
Select * From INFORMATION_SCHEMA.COLUMNS
也许我们可以让SQL Server给自己生成文档,或是按照表生成存储过程或是写好数据基类了…

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第 第1 章 数据库章节1.1 选择1.1.1 Having 子句的作用是(C) 。A.查询结果的分组条件 B.组...
    亮仔_c1b5阅读 5,820评论 0 0
  • 语 句 功 能 数据操作 SELECT——从数据库表中检索数据行和列INSERT——向数据库表添加新数据行DELE...
    戰敭阅读 10,507评论 0 53
  • 转自http://www.cnblogs.com/0351jiazhuang/p/4530366.html SQL...
    Hoe王666阅读 1,644评论 0 0
  • 基础 创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatab...
    微笑的AK47阅读 1,579评论 0 0
  • msSQl注入点的基本检测 在进行MsSQL注入点攻击时,首先要对MsSQL注入点进行一下基本的注入检测,以确定后...
    卿酌南烛_b805阅读 7,780评论 0 0