首先明确数据库对象的定义:数据库对象定义数据库内容的结构。它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本。

常见的数据库对象包括:表,索引,视图,图表,缺省值,规则,触发器,存储过程,函数等

1.sys.objects视图

数据库中创建的每一个对象都对应表中的一行,但不包括DDL触发器,查询触发器应该使用sys.triggers

常见的不同类型对象在sys.objects中的区分:

类型 type列 type_desc列
FOREIGN KEY 约束 F FOREIGN_KEY_CONSTRAINT
SQL 标量函数 FN SQL_SCALAR_FUNCTION
SQL 内联表值函数 IF SQL_INLINE_TABLE_VALUED_FUNCTION
内部表 IT INTERNAL_TABLE
SQL 存储过程 P SQL_STORED_PROCEDURE
PRIMARY KEY 约束 PK PRIMARY_KEY_CONSTRAINT
系统基表 S SYSTEM_TABLE
SQL 表值函数 TF SQL_TABLE_VALUED_FUNCTION
表(用户定义类型) U USER_TABLE
UNIQUE 约束 UQ UNIQUE_CONSTRAINT
视图 V View

因此查询数据库中包含的对象可以直接查询sys.objects视图,比如:查询数据库中所有的视图

 SELECT * FROM sys.objects WHERE type = 'U'

由于对象id在对应数据库中是唯一的,可以在查询时联结其他表或视图,比如:查询数据库中所有存储过程及其内容

 SELECT O.name, M.definition FROM sys.objects O
JOIN sys.sql_modules M ON M.object_id = O.object_id
WHERE O.type = 'P'

2.其他查询方法

存储过程有单独的系统视图sys.procedures,基本等价于sys.objects WHERE type = 'P'

另外还可以执行系统sp查询存储过程:EXEC sp_stored_procedures,不同的是:

sys.procedures (或sys.objects WHERE type = 'P')只包含用户存储过程,但执行sp_stored_procedures可以查询所有种类的存储过程和除了系统函数之外的所有函数

3.sys.modules视图

为每个包含 SQL 语言定义模块的系统对象返回一行,类型为 FN、IF、P、PC、TF 和 V 的系统对象具有关联的 SQL 模块。

因此,对于这些类型的对象,可以联结sys.objects查询对象的语言定义模块,即其内容。

4.sp_helptext需要注意的

sp_helptext是使用频率非常高的系统存储过程,使用它可以快速列出指定名称存储过程或函数的内容,但是有如下缺点:

①格式化代码

②当一行长度超过一定后,分行显示

这样当修改存储过程或函数时,如果使用sp_helptext很可能导致格式错乱,对于下一次的代码阅读造成很大的麻烦。

因此,建议sp_helptext仅限于查看存储过程或函数的内容。

另外,加密的存储过程不能通过sp_helptext查询。

本文待补充

【整理】SQLServer查询各种数据库对象(表,索引,视图,图表,存储过程等)的更多相关文章

  1. Oracle 客户端、服务器、数据库、数据库对象(表、视图等)的关系

    1.数据库服务器 所谓数据库服务器,只是在机器上安装了一个数据库管理软件,这个软件可以管理多个数据库.一般开发人员会针对每一个应用创建一个数据库 2.单实例数据库模式下的数据库服务器.数据库.数据库实 ...

  2. mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除

    查询指定 数据库 中所有 表 (指定数据库的,所有表) // 可以把 TABLE_NAME 换成 * 号, 查看更丰富的信息 SELECT TABLE_NAME FROM information_sc ...

  3. Sqlserver列出所有数据库名,表名,字段名

    Sqlserver列出所有数据库名,表名,字段名   1.获取所有数据库名:   ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name   注 ...

  4. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  5. HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(三) 多表关联全文索引模式

    关系型数据库中,多表关联是很常见的事情,HubbleDotNet 可以对部分情况的多表关联形式建立关联的全文索引,这样用户就不需要专门建一个大表 来解决多表关联时的全文索引问题. 下面以 为数据库现有 ...

  6. Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)

    Oracle 导出.导入某用户所有数据(包括表.视图.存储过程...)前提:在CMD 命令下 导出命令:exp 用户名/密码@数据库 owner=用户名 file=文件存储路径(如:F:\abcd.d ...

  7. PowerDesigner建模应用(二)逆向工程,导出PDM文件前过滤元数据(表、视图、存储过程等)

    在上一篇文章<PowerDesigner建模应用(一)逆向工程,配置数据源并导出PDM文件>步骤二中导出了目标数据库对应的PDM文件, 该文件中展示出了所有表的信息与关系. 某些业务场景下 ...

  8. PowerDesigner应用02 逆向工程之导出PDM文件前过滤元数据(表、视图、存储过程等)

    在上一篇文章<PowerDesigner应用01 逆向工程之配置数据源并导出PDM文件>步骤二中导出了目标数据库对应的PDM文件, 该文件中展示出了所有表的信息与关系. 某些业务场景下只需 ...

  9. 读写SQL脚本进行创建表、视图和存储过程

    一.按照先创建表.视图.存储过程的顺序创建: 二.导出脚本的时候注意:保存为ANSI文本,选项中:if not exists为true,防止覆盖:包含说明性标头为false;use database为 ...

随机推荐

  1. [分享]源代码&开发手记:SAE应用“车百科” (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, jobs)

    [分享]源代码&开发手记:SAE应用"车百科" (Python + SAE + Bottle + Bootstrap) - Bottle - Python4cn(news, ...

  2. 网易云课堂_C++程序设计入门(上)_第3单元:更上一层楼 – 超越C的语法_第3单元作业【3】-在线编程(难度:中;10分)

    1 本题要求实现两个重载的swap函数,每个swap函数都可交换3个整数a,b,c的值.将a的值存入b,b的值存入c,c的值存入a, 并且返回三个整数中最大的数的值.例如a,b,c的值为1,2,3,则 ...

  3. Java面向对象面试案例

  4. 步步学LINQ to SQL:为实体类添加关系【转】

    [IT168 专稿]本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL.附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集. 第一 ...

  5. crm使用soap创建下拉框

    //C#代码 //#region OptionMetadataCollection //OptionMetadataCollection opCollection = new OptionMetada ...

  6. SharePoint 2013 代码实现自定义的站点模版创建Site Collection

    先需要将自定义的站点模版从网站集转移到Farm中. 找一个自己已经完成配置及设计的网站,在网站设置里面选择另存为模版.要注意的是不是所有的站点类型都有另存为模版的功能. 存完之后可在解决方案库的界面里 ...

  7. 【27前端】背景半透明rgba LESS实践

    今天有看到司徒正美<背景半透明rgba最佳实践>的文章和里面推荐的一个在线工具CSS背景颜色属性值转换  . 于是联系到自己的less库,新技能Get. 内容如下: /*在你的less库中 ...

  8. Ubuntu 13.10 下安装node

    1.首先更新Ubuntu在线包:sudo apt-get update && sudo apt-get dist-upgrade, 2.默认Ubuntu已经安装python的,具体版本 ...

  9. linux通过文件查找依赖关系

    通过文件查找安装包安装缺少libstdc++6这个文件在ls /usr/lib/libstd*下有两个文件/usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6 ...

  10. Visual C++ 64bit应用程序项目设置

    Visual Studio 2005 This topic describes how to set up C++ applications to target 64-bit platforms us ...