前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL Server获取元数据所有方法和示例

SQL Server获取元数据所有方法和示例

作者头像
唔仄lo咚锵
发布2020-09-15 14:37:14
1.6K0
发布2020-09-15 14:37:14
举报

SQL Server元数据

  • 什么是元数据?
  • 怎么获取元数据?
    • 使用系统存储过程
    • 使用系统函数
    • 使用系统表
    • 使用信息架构视图

什么是元数据?


元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护 SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:某个数据库中的表和视图的个数以及名称 ;某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等。

怎么获取元数据?


示例数据库AdventureWorks2008:github下载地址

使用系统存储过程

元数据常用存储过程

系统存储过程

描述

sp_columns

返回指定表或视图的列的详细信息。

sp_databases

返回当前服务器上的所有数据库的基本信息。

sp_fkeys

若参数为带有主键的表,则返回包含指向该表的外键的所有表;若参数为带有外键的表名,则返回所有同过主键/外键关系与该外键相关联的所有表。

sp_pkeys

返回指定表的主键信息。

sp_server_info

返回当前服务器的各种特性及其对应取值。

sp_sproc_columns

返回指定存储过程的的输入、输出参数的信息。

sp_statistics

返回指定的表或索引视图上的所有索引以及统计的信息。

sp_stored_procedures

返回当前数据库的存储过程列表,包含系统存储过程。

sp_tables

返回当前数据库的所有表和视图,包含系统表。

示例

代码语言:javascript
复制
USE AdventureWorks2008
GO
execute sp_columns 'Person'
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
execute sp_tables
在这里插入图片描述
在这里插入图片描述

使用系统函数

元数据函数详细文档

系统函数

描述

COLUMNPROPERTY

返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。

COL_LENGTH

返回指定数据库的指定属性值,如是否处于只读模式等。

DATABASEPROPERTYEX

返回指定数据库的指定选项或属性的当前设置,如数据库的状态、恢复模型等。

OBJECT_ID

返回指定数据库对象名的标识号

OBJECT_NAME

返回指定数据库对象标识号的对象名。

OBJECTPROPERTY

返回指定数据库对象标识号的有关信息,如是否为表,是否为约束等。

fn_listextendedproperty

返回数据库对象的扩展属性值,如对象描述、格式规则、输入掩码等。

示例

代码语言:javascript
复制
SELECT COLUMNPROPERTY( OBJECT_ID('Person.Contact'),'LastName','PRECISION')AS 'Column Length';
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
USE AdventureWorks2008
GO
IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 1
   PRINT 'UnitMeasure is a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') = 0
   PRINT 'UnitMeasure is not a table.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'Production.UnitMeasure'),'ISTABLE') IS NULL
   PRINT 'ERROR: UnitMeasure is not a valid object.';
GO
在这里插入图片描述
在这里插入图片描述

使用系统表

元数据常用系统表

系统表

描述

syscolumns

存储每个表和视图中的每一列的信息以及存储过程中的每个参数的信息。

syscomments

存储包含每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的原始 SQL 文本语句。

sysconstraints

存储当前数据库中每一个约束的基本信息。

sysdatabases

存储当前服务器上每一个数据库的基本信息。

sysindexes

存储当前数据库中的每个索引的信息。

sysobjects

存储数据库内的每个对象(约束、默认值、日志、规则、存储过程、用户表等)的基本信息。

sysreferences

存储所有包括 FOREIGN KEY 约束的列。

systypes

存储系统提供的每种数据类型和用户定义数据类型的详细信息。

示例

代码语言:javascript
复制
select * from sysobjects where OBJECT_NAME(ID)='Department';
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
select * from  sysdatabases;
在这里插入图片描述
在这里插入图片描述

使用信息架构视图

信息架构视图基于 SQL-92 标准中针对架构视图的定义,这些视图独立于系统表,提供了关于 SQL Server 元数据的内部视图。信息架构视图的最大优点是,即使我们对系统表进行了重要的修改,应用程序也可以正常地使用这些视图进行访问。因此对于应用程序来说,只要是符合 SQL-92 标准的数据库系统,使用信息架构视图总是可以正常工作的。

常用视图

视图

描述

INFORMATION_SCHEMA .CHECK_CONSTRAINTS

返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。

INFORMATION_SCHEMA .COLUMNS

返回当前数据库中当前用户可以访问的所有列及其基本信息。

INFORMATION_SCHEMA .CONSTRAINT_COLUMN_USAGE

返回当前数据库中定义了约束的所有列及其约束名。

INFORMATION_SCHEMA .CONSTRAINT_TABLE_USAGE

返回当前数据库中定义了约束的所有表及其约束名。

INFORMATION_SCHEMA .KEY_COLUMN_USAGE

返回当前数据库中作为主键/外键约束的所有列。

INFORMATION_SCHEMA .SCHEMATA

返回当前用户具有权限的所有数据库及其基本信息。

INFORMATION_SCHEMA .TABLES

返回当前用户具有权限的当前数据库中的所有表或者视图及其基本信息。

INFORMATION_SCHEMA .VIEWS

返回当前数据库中的当前用户可

示例

代码语言:javascript
复制
select * from INFORMATION_SCHEMA .CHECK_CONSTRAINTS;
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
select * from INFORMATION_SCHEMA .TABLES
在这里插入图片描述
在这里插入图片描述

原创不易,请勿转载本不富裕的访问量雪上加霜 ) 博主首页:https://blog.csdn.net/qq_45034708

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL Server元数据
  • 什么是元数据?
  • 怎么获取元数据?
    • 使用系统存储过程
      • 使用系统函数
        • 使用系统表
          • 使用信息架构视图
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档