SQL Server中元数据函数的用法
作者:springsnow 发布时间:2024-01-20 16:26:54
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 | 对象的架构ID | Int |
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


猜你喜欢
- 把程序放到一个文件中,然后包含再call就可以了。(JMAIL4.3)<%'警告函数sub w_msg(messag
- 为了优化OceanBase的query timeout设置方式,特调研MySQL关于timeout的处理,记录如下。 mysql> s
- 什么是pyc文件pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有
- 将pandas.DataFrame,pandas.Series的索引设置为datetime64 [ns]类型时,将其视为DatetimeIn
- watch介绍vue中watch用来监听数据的响应式变化.获取数据变化前后的值watch的完整入参watch(监听的数据,副作用函数,配置对
- 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。本章节我们将为大家介绍如
- jquery有一个插件叫Timer,很有意思,咱来实现一个简版的yui3的node timer。但还是应当首先交代下yui3的node扩展的
- 更新什么?概况一览1、优化了 Promise.all 的定义,在 3.7 版本中一些混用 null 或 undefined 的时候的问题已经
- 1、显式等待它指定要查找的节点,然后指定一个最长的等待时间,如果规定时间内加载出来了这个节点,就返回查找的节点;如果规定时间内没有加载出该节
- 本文所示代码实现python编程方向键控制图片上下左右,我们首先看下演示结果。演示:实例代码:bif="1.jpg" m
- 前言最近因为工作的原因,在使用SSM框架实现一个商品信息展示的功能,商品的数据较多,不免用到分页,查了一番MyBatis分页的做法,终于是实
- 列表的逆序遍历a = [1,3,6,8,9]print("通过下标逆序遍历1:")for i in a[::-1]: &
- Python 操作 Excel常用工具数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。因此用 Pyt
- 本文介绍的实例成功的实现了动态行转列。下面我以一个简单的数据库为例子,说明一下。数据表结构这里我用一个比较简单的例子来说明,也是行转列的经典
- 目录前言第一步:查看所有 SSH-Key第二步:生成一个 ssh-key,用于配置公司的 GitLab第三步:Github 生成一个 SSH
- 为什么使用生产者消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发中,如果生产者处理速度很快,而消费者
- 引言caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现。caffe提供matlab接口和python接口,这两种
- 这两天闲来无事在百度上淘了点图片,不多,也就几万张吧,其中有不少美女图片奥!哈哈!这里暂且不说图片是怎么获得的,咱聊聊得到图片以后发生的事。
- 目录1、创建相关新应用2、获取Access Token3、分析评论并进行观点抽取4、运行结果利用百度API自然语言处理技术中的评论观点抽取方
- 要真说出来哪一个函数能够做得到,还真难。但我们可用下面的代码来进行识别,返回“假”即偶数,返回“真”则奇数: function&n