位置: 编程技术 - 正文

获取SQL Server数据库元数据的几种方法(sql server获取字段长度)

编辑:rootadmin

推荐整理分享获取SQL Server数据库元数据的几种方法(sql server获取字段长度),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sqlserver 获取表字段,sqlserver 获取表字段,获取sqlsession,怎么获取sql_id,sql server获取字段长度,sqlserver获取uuid,怎么获取sql_id,sql获取guid,内容如对您有帮助,希望把文章链接给更多的朋友!

元数据简介

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

◆某个数据库中的表和视图的个数以及名称;◆某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等;◆某个表上定义的约束;◆某个表上定义的索引以及主键/外键的信息。

下面我们将介绍几种获取元数据的方法。

获取元数据

使用系统存储过程与系统函数访问元数据

获取元数据最常用的方法是使用 SQL Server 提供的系统存储过程与系统函数。

系统存储过程与系统函数在系统表和元数据之间提供了一个抽象层,使得我们不用直接查询系统表就能获得当前数据库对象的元数据。

常用的与元数据有关的系统存储过程有以下一些:

系统存储过程

◆sp_columns 返回指定表或视图的列的详细信息。◆sp_databases 返回当前服务器上的所有数据库的基本信息。◆sp_fkeys 若参数为带有主键的表,则返回包含指向该表的外键的所有表;若参数为带有外键的表名,则返回所有同过主键/外键关系与该外键相关联的所有表。◆sp_pkeys 返回指定表的主键信息。◆sp_server_info 返回当前服务器的各种特性及其对应取值。◆sp_sproc_columns 返回指定存储过程的的输入、输出参数的信息。◆sp_statistics 返回指定的表或索引视图上的所有索引以及统计的信息。◆sp_stored_procedures 返回当前数据库的存储过程列表,包含系统存储过程。◆sp_tables 返回当前数据库的所有表和视图,包含系统表。

常用的与元数据有关的系统函数有以下一些:

系统函数

◆COLUMNPROPERTY 返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。◆COL_LENGTH 返回指定数据库的指定属性值,如是否处于只读模式等。◆DATABASEPROPERTYEX 返回指定数据库的指定选项或属性的当前设置,如数据库的状态、恢复模型等。◆OBJECT_ID 返回指定数据库对象名的标识号◆OBJECT_NAME 返回指定数据库对象标识号的对象名。◆OBJECTPROPERTY 返回指定数据库对象标识号的有关信息,如是否为表,是否为约束等。◆fn_listextendedproperty 返回数据库对象的扩展属性值,如对象描述、格式规则、输入掩码等。

由于我们无法直接利用到存储过程与函数的返回结果,因此只有在我们关心的只是查询的结果,而不需要进一步利用这些结果的时候,我们会使用系统存储过程与系统函数来查询元数据。

例如,如果要获得当前服务器上所有数据库的基本信息,我们可以在查询分析器里面运行:

EXEC sp_databasesGO

在返回结果中我们可以看到数据库的名称、大小及备注等信息。

但是如果要引用这部分信息,或者存储这部分信息以供后面使用,那么我们必须借助中间表来完成这个操作:

获取SQL Server数据库元数据的几种方法(sql server获取字段长度)

使用信息架构视图访问元数据

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

信息架构视图

◆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:返回当前数据库中的当前用户可以访问的视图及其所有者、定义等信息。

由于这些信息架构都是以视图的方式存在的,因此我们可以很方便地获得并利用需要的信息。

例如,我们要得到某个表有多少列,可以使用以下语句:

SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME='mytable'

使用系统表访问元数据

虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL Server 将所有数据库对象的信息均存放在系统表中,作为 SQL Server 的管理、开发人员,了解各个系统表的作用将有助于我们了解 SQL Server 的内在工作原理。

SQL Server 的系统表非常多,其中最常用的与元数据查询有关的表有如下一些:syscolumns 存储每个表和视图中的每一列的信息以及存储过程中的每个参数的信息。syscomments 存储包含每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的原始 SQL 文本语句。sysconstraints 存储当前数据库中每一个约束的基本信息。sysdatabases 存储当前服务器上每一个数据库的基本信息。sysindexes 存储当前数据库中的每个索引的信息。sysobjects 存储数据库内的每个对象(约束、默认值、日志、规则、存储过程等)的基本信息。sysreferences 存储所有包括 FOREIGN KEY 约束的列。systypes 存储系统提供的每种数据类型和用户定义数据类型的详细信息。

将系统存储过程、系统函数、信息架构视图与系统表结合使用,可以方便地让我们获得所有需要的元数据信息。

示例:

1、 获得当前数据库所有用户表的名称。

其中主要用到了系统表 sysobjects以及其属性 xtype,还有就是用到了 OBJECTPROPERTY 系统函数来判断是不是安装 SQL Server 的过程中创建的对象。

2、获得指定表上所有的索引名称。

SELECT name FROM sysindexesWHERE id = OBJECT_ID ('mytable') AND indid > 0

综合实例

下面给出了一个存储过程,它的作用是自动将当前数据库的用户存储过程加密。

该存储过程利用了 sysobjects 和 syscomments 表,并巧妙地修改了原存储过程的 SQL 定义语句,将 AS 修改为了 WITH ENCRYPTION AS,从而达到了加密存储过程的目的。本存储过程在 SQL Server 上通过。

SQL优化经验总结 一.优化SQL步骤1.通过showstatus和应用特点了解各种SQL的执行频率通过SHOWSTATUS可以提供服务器状态信息,也可以使用mysqladminextended-status命令获得。SHOWSTATUS

如何调优SQL Server查询 在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,如何把你的工作和思考过程传达给查询优化器。下面就一起来探讨一下吧!有

解决SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法 SQLSERVER数据库进行备份时出现操作系统错误5(拒绝访问)。BACKUPDATABASE正在异常终止。错误。我们应该如何解决这个问题?小编今天为大家推荐一个解

标签: sql server获取字段长度

本文链接地址:https://www.jiuchutong.com/biancheng/347700.html 转载请保留说明!

上一篇:使用mysqladmin检测MySQL运行状态的教程(mysqladmin ping)

下一篇:SQL优化经验总结(sql语句优化总结)

  • 增值税发票综合服务平台密码
  • 收到备用金的会计分录怎么写
  • 横幅属于什么发票范围
  • 公司为员工买零食
  • 房东收到房租转让费会计处理
  • 企业怎么挑选计提折旧方式方法
  • 实收资本变更做账依据
  • 结转产成品会计分录怎么做
  • 低值易耗品摊销借贷方向
  • 建筑企业如何管理资质证书
  • 关联企业无偿使用土地
  • 未足额代扣代缴车船税
  • 小规模纳税人月超15万季度不超45万
  • 发票的受票方是什么
  • 如何能减免个人所得税
  • 开发商乱要回迁怎么投诉
  • 政府部门纳税人识别号查询
  • 在建工程的折旧费计入什么科目
  • 废旧物品回收是做什么的
  • 苹果系统怎么修改开机密码
  • 增值税应税劳务的纳税人是什么意思
  • 怎么加入win11预览计划
  • 借条的标准格式 手写学生
  • rsrcmtr.exe - rsrcmtr是什么进程 有什么用
  • 电脑网络提示ip地址错误怎么办
  • 期间费用包含哪些
  • 存货跌价后销售会计分录
  • 租金收入计入收入总额吗
  • php多维数组遍历输出
  • 缴纳租房押金会被骗吗
  • 固定资产修理支出准予扣除吗
  • 应收款项减值的核算方法
  • 挖机出租给公司
  • 瑞数5.5逆向笔记(纯扣算法)
  • bootstrap-
  • wait等待的用法
  • 汇兑损益计算器
  • 公司与公司往来账表格怎么制作
  • 公司注销开户行需要注销吗
  • 水电费是收据能入账不
  • 销售包装什么意思
  • 在vue项目如何引入异步组件?
  • 返回个人所得税的分录
  • 企业基本养老金退休后能领多少
  • SQL Server 在Management Studio中使用Web浏览器
  • 公司签发银行承兑汇票的行为属于什么行为
  • 生产企业出口退税全部流程
  • 研发费用如何进账
  • 待认证进项税额认证以后怎么做分录
  • 交易性金融资产的入账价值
  • 记账凭证摘要的填制要求
  • 公司开业前期费用谁出
  • 广告设计合同属于什么合同
  • 哪些费用计入管理费用开办费
  • 股权转让怎么入账
  • 现金流量的构成内容
  • 个人贷款打到公司账户存在什么风险
  • 为什么购入股票是综股
  • 航天金税盘维护费发票在哪打印
  • 购买办公软件的进项发票可以抵扣吗
  • 购买金税盘取得的发票
  • 小企业建账流程图
  • sql server内存怎么设置合理
  • mysql数据库sid
  • 完美解决MySQL通过localhost无法连接数据库的问题
  • windows注册表简单应用
  • 新买的电脑如何验机
  • centos7安装教程详解
  • xp系统如何查询配置
  • 阿里云安装
  • mac如何开启查找我的mac
  • win8笔记本无法更新正在撤销更改
  • excel怎么添加动态图
  • linux里面vim
  • cocos2d教程
  • 带你了解处女座
  • 利用Python中的turtle绘制乡村振兴
  • jquery 跨域方法
  • 电子税务局怎么添加银行账户信息
  • 回迁房办房产证需要交多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设