SQL Server中元数据函数的用法

2022-06-11 18:17:46

1、获取数据库标识符:DB_IDDB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库。语法格式:DB_ID(['database_name'])参数中的d...

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)、nullIsAutoClose数据库的自动关闭功能是否启用Int、nullIsAutoCreateStatistics是否自动创建统计信息Int、nullIsAutoShrink是否定期收缩Int、nullIsAutoUpdateStatistics是否自动能够更新统计信息Int、nullRecovery数据库的恢复模式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代表FalseTableHasPrimaryKey表中是否含有主键Int  1代表True  0代表FalseTableHasIndex表中是否含有索引Int  1代表True  0代表FalseTableHasForeignKey表中是否含有外键Int  1代表True  0代表FalseSchemaId对象的架构IDIntOwnerId对象的所有者IntIsView是否视图Int  1代表True  0代表FalseIsUserTable是否用户创建表Int  1代表True  0代表FalseIsTable是否是表Int  1代表True  0代表FalseIsSystemTable是否系统表Int  1代表True  0代表FalseIsPrimaryKey是否主键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、NullIsUserDefinedEG是否为用户定义的文件组Int、NullIsDefault是否默认的文件组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代表FalseIsPrimaryFile是否为主要数据文件Int 1代表True,0代表FalseIsLogFile是否为日志文件Int 1代表True,0代表FalseSpaceUsed文件空间的使用量Int

示例:

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

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

相关文章 大家在看