SQL Server中元数据函数的用法

1、获取数据库标识符:DB_ID

DB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库。

语法格式:

DB_ID (['database_name'])

参数中的database_name是sysname类型的数据库名称,为可选参数。如果没有指定则返回当前工作数据库的ID。

返回值:

int数据类型的数据库标识符。

示例:

select DB_ID()    --输出 8

2、获取数据库名称:DB_NAME

DB_NAME函数用于红区当前数据库的名称(nvarchar数据类型)

语法格式:

DB_NAME(['database_id'])

参数中的database是int数据类型的数据库标识符,为可选参数。如果没有指定则返回当前工作数据库的名称。

示例:

select DB_NAME()    --输出 NHibernate

3、获取数据库属性:DATABASEPROPERTYEX

databasepropertyex函数用于获得指定的某个数据库的某个属性的当前设置。执行一次返回一个属性值,若要返回多个属性值,可以查询master系统数据库的sys.database系统视图。

语法格式:

databasepropertyex(database,property)

参数说明:

  • database:表示要为其返回命名属性的信息的数据库名称,nvarchar(128)数据类型
  • property:表示要返回的数据库属性,数据类型为Varchar(128)

示例:

select databasepropertyex('NHibernate','recovery')    --输出 SIMPLE 这是数据库的恢复模式

Property属性的取值以及说明如下:

属性值 说明 返回值
Collation 排序规则名称 nvarchar(128)、null
IsAutoClose 数据库的自动关闭功能是否启用 Int、null
IsAutoCreateStatistics 是否自动创建统计信息 Int、null
IsAutoShrink 是否定期收缩 Int、null
IsAutoUpdateStatistics 是否自动能够更新统计信息 Int、null
Recovery 数据库的恢复模式 nvarchar(128)
Status 数据库的状态 nvarchar(128)
Updateability 是否可以修改数据 nvarchar(128)
UserAccess 哪些用户可以访问数据库 nvarchar(128)
Version 数据库内部版本号 Int

4、获取数据库对象标识符:OBJECT_ID

object_id函数用于获取特定数据库、特定架构下特定数据对象的唯一ID(int数据类型),对象的ID用于在数据库内区分唯一。

语法格式:

object_id( '[database_name . [schema_name] . | schema_name . ]object_name'
         [,'object_type']
      ')

参数说明:

database_name

database_name 数据库名称
schema_name 架构名称
object_name 对象名称
object_type 对象类型

返回值:

Int数据类型的对象标识符。

5、获取数据库对象名称:OBJECT_NAME

object_name函数用于获取指定数据库、指定架构下的数据对象的逻辑名称。该名称可以通过查询sys.objects系统视图的name列得到。

语法格式:

object_name(object_id)

参数中的object_id是int数据类型的对象标识符

返回值:

sysname数据类型的逻辑对象名称。

示例:

select OBJECT_NAME(OBJECT_ID('dbo.Account'))    --输出Account

6、获取数据库对象属性值:OBJECTPROPERTY

objectproperty函数用于获得指定数据库、指定架构下的指定对象的指定属性的值。

语法格式:

objectproperty(id,property)

参数说明:

  • id:表示要为其返回命名属性信息的对象的ID,int数据类型。
  • property:表示要返回的属性,数据类型为sql_variant,即变体。

常见的property属性值

属性值 说明 返回值
TableHasTextImage 表中是否含有text、image列 Int  1代表True  0代表False
TableHasPrimaryKey 表中是否含有主键 Int  1代表True  0代表False
TableHasIndex 表中是否含有索引 Int  1代表True  0代表False
TableHasForeignKey 表中是否含有外键 Int  1代表True  0代表False
SchemaId 对象的架构ID Int
OwnerId 对象的所有者 Int
IsView 是否视图 Int  1代表True  0代表False
IsUserTable 是否用户创建表 Int  1代表True  0代表False
IsTable 是否是表 Int  1代表True  0代表False
IsSystemTable 是否系统表 Int  1代表True  0代表False
IsPrimaryKey 是否主键 Int  1代表True  0代表False

7、获取文件组标识符:FILEGROUP_ID

filegropy_id函数用于获取文件组的唯一标识符(int数据类型)

语法格式:

FILEGROUP_ID( 'filegropy_name' )

参数中的filegropy_name是sysname类型的数据库名称,可以从sys.filegroups系统视图中查询得到。

返回值:

Int数据类型的文件组标识符。

示例:

select filegroup_id('NHiberna')    --输出 null
select filegroup_id('PRIMARY')    --输出 1

8、获取文件组名称:FILEGROUP_NAME

filegroup_name函数用于获取文件组的名称(nvarchar数据类型)。

语法格式:

filegroup_name(filegroup_id)

参数中的filegroup_id是int数据类型的文件组标识符,要获得该标识符,可以查询sys.filegroups系统视图

返回值:

nvarchar(128)数据类型的文件组名称

示例:

select filegroup_name(1)    --输出 PRIMARY

9、获取文件组属性值:FILEGROUPPROPERTY

filegroupproperty函数用于获得指定文件组的指定属性值。

语法格式:

filegroupproperty(filegroupname,property)

参数说明:

  • filegroup_name:表示要为其返回属性信息的文件组名称,nvarchar(128)数据类型,可以通过sys.filegroups列获得。
  • property:表示要返回的属性,数据类型为varchar(128)。

常见的property属性值列表

属性值

属性值 说明 返回值
IsReadOnly 文件组是否只读 Int、Null
IsUserDefinedEG 是否为用户定义的文件组 Int、Null
IsDefault 是否默认的文件组 Int、Null

示例:

select filegroupproperty('PRIMARY','isreadonly')    --输出 0

10、获得文件标识符:FILE_ID

file_id函数用于获取数据库的文件,包括日志文件和数据文件的标识符。文件标识符用于在数据库中唯一区分。

语法格式:

FILE_ID( file_name )

参数中的file_name是sysname类型的文件名称,可以通过查询系统视图sys.database_files中的name列来获得。

返回值:

smallint数据类型的文件标识符。

示例:

select * from sys.database_files    --查出有哪些数据库文件
    select file_id('NHibernate')    --输出 1 查出NHibernate数据库文件对应的fileid

11、获取文件名称:FILE_NAME

file_name函数用于获取当前数据库的逻辑名称(nvarchar数据类型),这里是逻辑名称而不是包含路径的物理名称。

语法格式:

file_name(file_id)

参数中的file_id是int数据类型的数据库标识符。可以查询master数据库的sys.master_files系统视图的file_id列获得服务器上所有数据库的文件ID,也可以查询某个数据库的sys.database_files系统视图的file_id列获得该数据库的文件的ID。

返回值:

nvarchar(128)数据类型的逻辑文件名称。

示例:

select * from sys.database_files    --查出有哪些数据库文件
    select file_id('NHibernate')    --输出 1 查出NHibernate数据库文件对应的fileid
    select  file_name(1)        -- 输出 NHibernate

12、获取文件属性值:FILEPROPERTY

fileproperty函数用于获得指定文件的指定属性值。

语法格式:

fileproperty (file_name ,property )

参数说明:

  • file_name:表示要为其返回属性信息的文件的逻辑名称,nvarchar(128)数据类型,可以通过sys.database_files系统视图查询name列获得。
  • property:表示要返回的属性,数据类型为varchar(128)。

常见的property属性值的取值如下:

属性值

属性值 说明 返回值
IsReadOnly 文件是否只读 Int 1代表True,0代表False
IsPrimaryFile 是否为主要数据文件 Int 1代表True,0代表False
IsLogFile 是否为日志文件 Int 1代表True,0代表False
SpaceUsed 文件空间的使用量 Int

示例:

select fileproperty('nhibernate','isreadonly')    --输出 0
    select fileproperty('nhibernate','isprimaryfile')--输出1
    select fileproperty('nhibernate','islogfile')    --输出0
    select fileproperty('nhibernate','spaceused')    --输出184

到此这篇关于SQL Server元数据函数的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 获取SQL Server数据库元数据的几种方法

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

  • SQL Server 使用 SET FMTONLY ON 获得表的元数据

    有时,我们需要获得某张表所有的元数据,我们可能想到的是通过查询系统表获得,但是这比较繁琐,而在SQL Server2005(包含)以后,提供了一个比较简单的操作,只返回表的所有元数据,而没有行数据,它就是SET FMONLY {ON|OFF}命令.如图: 如果执行的时候打开执行计划(CTRL+M),也不会返回带有执行计划的标签(如上图). 这样,在浏览器标签组打开多个标签,并不影响查询标签组,我们就可以一边写SQL,一边查信息,是不是更方便了!

  • SQL Server中元数据函数的用法

    1.获取数据库标识符:DB_ID DB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库. 语法格式: DB_ID (['database_name']) 参数中的database_name是sysname类型的数据库名称,为可选参数.如果没有指定则返回当前工作数据库的ID. 返回值: int数据类型的数据库标识符. 示例: select DB_ID() --输出 8 2.获取数据库名称:DB_NAME DB_NAME函数用于红区当前数据库的名称(nva

  • Sql Server中Substring函数的用法实例解析

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

  • SQL Server中JSON函数的用法详解

    目录 一. 将查询结果输出JSON格式 1.FOR JSON AUTO:SELECT语句的结果以JSON输出. 2.FOR JSON AUTO,Root(’’) :为JOSN加上根节点 3.FOR JSON PATH输出:可通过列别名来定义JSON对象的层次结构 4.FOR JSON PATH+ROOT输出:为JOSN加上根节点 5.INCLUDE_NULL_VALUES:值null的字段需要显示出现. 6.列的别名,可以增加带有层级关系的节点. 二. 解析JSON格式的数据 1.使用OPENJ

  • SQL Server中聚合函数的用法

    聚合函数对一组值执行计算,并返回单个值. 除了 COUNT 外,聚合函数都会忽略 Null 值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用. OVER 子句可以跟在除 STRING_AGG.GROUPING 或 GROUPING_ID 函数以外的所有聚合函数后面. 只能在以下位置将聚合函数作为表达式使用: SELECT 语句的选择列表(子查询或外部查询). HAVING 子句. T-SQL提供的聚合函数一共有13个之多. 1.avg:平均值 avg( [ all |

  • SQL Server中字符串函数的用法详解

    在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数. 一.编码转换 1.获取字符的ASCII码:ascii ASCII(espression) 这里的expression是一个返回char或varchar数据类型的表达式,ASCII函数仅对表达式最左侧的字符返回ASCII码值. 返回值:int数据类型. 注意:如果是多个字符的字符串,也只是返回第一个字符的ASCII码值. select ASCII('f') --输出 102 2.获取ASCII码对应的字符:cha

  • SQL Server中数学函数的用法

    1.计算绝对值ABS ABS函数对一个数值表达式结果计算绝对值(bit数据类型除外),返回整数. 语法格式: ABS(数值表达式) 返回值:与数值表达式类型一致的数据 示例: SELECT ABS(-1) --输出 1 2.获取大于等于最小整数值Celling CEILING函数返回大于等于数值表达式(bit数据类型除外)的最小整数值.俗称天花板函数,尽量往大的取整. 语法格式: CEILING(数值表达式) 返回值:与数值表达式类型一致的数据. 示例: SELECT Celling(123.1

  • SQL Server中row_number函数的常见用法示例详解

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是ROW_NUMBER()函数的语法实例: select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区. ROW_NUMBER()函

  • SQL Server中row_number函数用法入门介绍

    目录 一.SQL Server Row_number函数简介 二.Row_number函数的具体用法 1.使用row_number()函数对结果集进行编号 2.对结果集按照指定列进行分组,并在组内按照指定列排序 3.对结果集按照指定列去重 总结 一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 语法实例: select *,row_number() over(

  • SQL Server中交叉联接的用法详解

    目录 1.交叉联接(cross join)的概念 2.交叉联接的语法格式 3.交叉查询的使用场景 3.1 交叉联接可以查询全部数据 3.2 交叉联接优化查询性能 4.总结 今天给大家介绍SQLServer中交叉联接的用法,希望对大家能有所帮助! 1.交叉联接(cross join)的概念 交叉联接是联接查询的第一个阶段,它对两个数据表进行笛卡尔积.即第一张数据表每一行与第二张表的所有行进行联接,生成结果集的大小等于T1*T2. select * from t1 cross join t2 2.交

  • Sql Server中REPLACE函数的使用

    REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法 REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' ) 参数 ''string_replace1'' 待搜索的字符串表达式.string_replace1 可以是字符数据或二进制数据. ''string_replace2'' 待查找的字符串表达式.string_replace2 可以是字符数据或二进制数据.

随机推荐