网络编程
位置:首页>> 网络编程>> 数据库>> SQL Server中元数据函数的用法

SQL Server中元数据函数的用法

作者:springsnow  发布时间:2024-01-20 16:26:54 

标签: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列Int1代表True0代表False
TableHasPrimaryKey表中是否含有主键Int1代表True0代表False
TableHasIndex表中是否含有索引Int1代表True0代表False
TableHasForeignKey表中是否含有外键Int1代表True0代表False
SchemaId对象的架构IDInt
OwnerId对象的所有者Int
IsView是否视图Int1代表True0代表False
IsUserTable是否用户创建表Int1代表True0代表False
IsTable是否是表Int1代表True0代表False
IsSystemTable是否系统表Int1代表True0代表False
IsPrimaryKey是否主键Int1代表True0代表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

来源:https://www.cnblogs.com/springsnow/p/9881229.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com