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、获取文件组标识符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
5、获取文件组名称FILEGROUP_NAME
filegroup_name函数用于获取文件组的名称(nvarchar数据类型)。
语法结构:
filegroup_name(filegroup_id)
参数中的filegroup_id是int数据类型的文件组标识符,要获得该标识符,可以查询sys.filegroups系统视图
返回值:
nvarchar(128)数据类型的文件组名称
示例:
select filegroup_name(1) --输出 PRIMARY
6、获取文件组属性值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
7、获得文件标识符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
8、获取文件名称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
9、获取文件属性值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
10、获取数据库对象标识符OBJECT_ID
object_id函数用于获取特定数据库、特定架构下特定数据对象的唯一ID(int数据类型),对象的ID用于在数据库内区分唯一。
语法结构:
object_id( '[database_name . [schema_name] . | schema_name . ]object_name'
[,'object_type']
')
参数说明:
database_name | 数据库名称 |
schema_name | 架构名称 |
object_name | 对象名称 |
object_type | 对象类型 |
返回值:
Int数据类型的对象标识符。
11、获取数据库对象名称OBJECT_NAME
object_name函数用于获取指定数据库、指定架构下的数据对象的逻辑名称。该名称可以通过查询sys.objects系统视图的name列得到。
语法结构:
object_name(object_id)
参数中的object_id是int数据类型的对象标识符
返回值:
sysname数据类型的逻辑对象名称。
示例:
select OBJECT_NAME(OBJECT_ID('dbo.Account')) --输出Account
12、获取文件属性值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 |
SQL Server常用元数据函数的更多相关文章
- sql server 常用的函数小汇
摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但 ...
- sql server常用字符串函数
--返回字符表达式中最左侧字符的ASCII代码值 --将整数ASCII代码转换为字符 )--a )--A ')--A SELECT CHAR('A')--在将 varchar 值 'A' 转换成数据类 ...
- Sql Server 常用自定义函数
-- select * from [dbo].[SplitToTable]('ADSF','|') -- 分解字符串 ALTER FUNCTION [dbo].[SplitToTable] ( @Sp ...
- sql server 常用的系统存储过程
系统存储过程 说明 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当 ...
- sql server中常用方法函数
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...
- Sql Server存储过程和函数浅谈
今天给大家总结一下sql server中的存储过程和函数.本人是小白,里面内容比较初级,大神不喜勿喷 自行飘过就是.. 首先给大家简单列出sql server中的流控制语句,后面会用到的^_^ sql ...
- SQL点滴30—SQL中常用的函数
原文:SQL点滴30-SQL中常用的函数 该文章转载自http://www.cnblogs.com/jiajiayuan/archive/2011/06/16/2082488.html 别人的总结,很 ...
- 深入浅出SQL Server 2008 分区函数和分区表
原文:深入浅出SQL Server 2008 分区函数和分区表 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门数据的查询就可以更快的运行,基本原理就是,因为要扫描的数据变的 ...
- SQL Server 2008 分区函数和分区表详解
[摘要]本文详细介绍SQL Server 2008 分区函数和分区表,包括查询某个分区.归档数据.添加分区.删除分区等内容. 当我们数据量比较大的时候,我们需要将大型表拆分为多个较小的表,则只访问部门 ...
随机推荐
- Spring 运用 pointcut 和 advisor 对特定的方法进行切面编程
上一个例子演示了对特定的bean中的所有的方法进行面向切面编程,包括了 before , after , after throwing, around 几种形式: 如果想对一个bean中的特定方法进行 ...
- HDU 1517 (类巴什博奕) A Multiplication Game
如果n在[2, 9]区间,那么Stan胜. 如果n在[10, 18]区间,那么Ollie胜,因为不管第一次Stan乘上多少,第二次Ollie乘上一个9,必然会得到一个不小于18的数. 如果n在[19, ...
- hdu4638 group 树状数组
连接:http://acm.hdu.edu.cn/showproblem.php?pid=4638 题意:就给给你n个数(大小在1-n里),然后给你连续的可以构成一个块,再给你N个询问,每个询问一个l ...
- MVC+Ef项目(4) 抽象业务逻辑层BLL层
接下来,我们就要到业务逻辑层了,简单的说,业务逻辑层就是调用Repository(可以看做是DAL数据库访问层) 先来看看项目的架构 我们现在就开始来做BLL层. 同样,先编写 UserInfoS ...
- Hibernate-Native SQL
1.标量(值)查询: sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQLQuery("SEL ...
- 文件IO一些注意的地方
两个各自独立的进程各自打开同一个文件,则每个进程都有各自的文件表项.这是因为每个进程都有它自己对该文件的当前偏移量.但是对一个给定的文件只有一个v节点表项.lseek()只修改文件表项中的当前文件偏移 ...
- php 使用date()函数的报错
错误提示: Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* ...
- js+css实现带缓冲效果右键弹出菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux makefile教程之概述一[转]
概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些 Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makef ...
- 使用Spring MVC统一异常处理实战
1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合 ...