SQL?Server中元數(shù)據(jù)函數(shù)的用法
1、獲取數(shù)據(jù)庫標(biāo)識(shí)符:DB_ID
DB_ID函數(shù)用于獲取當(dāng)前數(shù)據(jù)庫的唯一ID(int數(shù)據(jù)類型),數(shù)據(jù)庫ID用于服務(wù)器上唯一區(qū)分書庫。
語法格式:
DB_ID (['database_name'])
參數(shù)中的database_name是sysname類型的數(shù)據(jù)庫名稱,為可選參數(shù)。如果沒有指定則返回當(dāng)前工作數(shù)據(jù)庫的ID。
返回值:
int數(shù)據(jù)類型的數(shù)據(jù)庫標(biāo)識(shí)符。
示例:
select DB_ID() --輸出 8
2、獲取數(shù)據(jù)庫名稱:DB_NAME
DB_NAME函數(shù)用于紅區(qū)當(dāng)前數(shù)據(jù)庫的名稱(nvarchar數(shù)據(jù)類型)
語法格式:
DB_NAME(['database_id'])
參數(shù)中的database是int數(shù)據(jù)類型的數(shù)據(jù)庫標(biāo)識(shí)符,為可選參數(shù)。如果沒有指定則返回當(dāng)前工作數(shù)據(jù)庫的名稱。
示例:
select DB_NAME() --輸出 NHibernate
3、獲取數(shù)據(jù)庫屬性:DATABASEPROPERTYEX
databasepropertyex函數(shù)用于獲得指定的某個(gè)數(shù)據(jù)庫的某個(gè)屬性的當(dāng)前設(shè)置。執(zhí)行一次返回一個(gè)屬性值,若要返回多個(gè)屬性值,可以查詢master系統(tǒng)數(shù)據(jù)庫的sys.database系統(tǒng)視圖。
語法格式:
databasepropertyex(database,property)
參數(shù)說明:
- database:表示要為其返回命名屬性的信息的數(shù)據(jù)庫名稱,nvarchar(128)數(shù)據(jù)類型
- property:表示要返回的數(shù)據(jù)庫屬性,數(shù)據(jù)類型為Varchar(128)
示例:
select databasepropertyex('NHibernate','recovery') --輸出 SIMPLE 這是數(shù)據(jù)庫的恢復(fù)模式
Property屬性的取值以及說明如下:
屬性值 | 說明 | 返回值 |
---|---|---|
Collation | 排序規(guī)則名稱 | nvarchar(128)、null |
IsAutoClose | 數(shù)據(jù)庫的自動(dòng)關(guān)閉功能是否啟用 | Int、null |
IsAutoCreateStatistics | 是否自動(dòng)創(chuàng)建統(tǒng)計(jì)信息 | Int、null |
IsAutoShrink | 是否定期收縮 | Int、null |
IsAutoUpdateStatistics | 是否自動(dòng)能夠更新統(tǒng)計(jì)信息 | Int、null |
Recovery | 數(shù)據(jù)庫的恢復(fù)模式 | nvarchar(128) |
Status | 數(shù)據(jù)庫的狀態(tài) | nvarchar(128) |
Updateability | 是否可以修改數(shù)據(jù) | nvarchar(128) |
UserAccess | 哪些用戶可以訪問數(shù)據(jù)庫 | nvarchar(128) |
Version | 數(shù)據(jù)庫內(nèi)部版本號(hào) | Int |
4、獲取數(shù)據(jù)庫對(duì)象標(biāo)識(shí)符:OBJECT_ID
object_id函數(shù)用于獲取特定數(shù)據(jù)庫、特定架構(gòu)下特定數(shù)據(jù)對(duì)象的唯一ID(int數(shù)據(jù)類型),對(duì)象的ID用于在數(shù)據(jù)庫內(nèi)區(qū)分唯一。
語法格式:
object_id( '[database_name . [schema_name] . | schema_name . ]object_name' [,'object_type'] ')
參數(shù)說明:
database_name
database_name | 數(shù)據(jù)庫名稱 |
schema_name | 架構(gòu)名稱 |
object_name | 對(duì)象名稱 |
object_type | 對(duì)象類型 |
返回值:
Int數(shù)據(jù)類型的對(duì)象標(biāo)識(shí)符。
5、獲取數(shù)據(jù)庫對(duì)象名稱:OBJECT_NAME
object_name函數(shù)用于獲取指定數(shù)據(jù)庫、指定架構(gòu)下的數(shù)據(jù)對(duì)象的邏輯名稱。該名稱可以通過查詢sys.objects系統(tǒng)視圖的name列得到。
語法格式:
object_name(object_id)
參數(shù)中的object_id是int數(shù)據(jù)類型的對(duì)象標(biāo)識(shí)符
返回值:
sysname數(shù)據(jù)類型的邏輯對(duì)象名稱。
示例:
select OBJECT_NAME(OBJECT_ID('dbo.Account')) --輸出Account
6、獲取數(shù)據(jù)庫對(duì)象屬性值:OBJECTPROPERTY
objectproperty函數(shù)用于獲得指定數(shù)據(jù)庫、指定架構(gòu)下的指定對(duì)象的指定屬性的值。
語法格式:
objectproperty(id,property)
參數(shù)說明:
- id:表示要為其返回命名屬性信息的對(duì)象的ID,int數(shù)據(jù)類型。
- property:表示要返回的屬性,數(shù)據(jù)類型為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 | 對(duì)象的架構(gòu)ID | Int |
OwnerId | 對(duì)象的所有者 | Int |
IsView | 是否視圖 | Int 1代表True 0代表False |
IsUserTable | 是否用戶創(chuàng)建表 | Int 1代表True 0代表False |
IsTable | 是否是表 | Int 1代表True 0代表False |
IsSystemTable | 是否系統(tǒng)表 | Int 1代表True 0代表False |
IsPrimaryKey | 是否主鍵 | Int 1代表True 0代表False |
7、獲取文件組標(biāo)識(shí)符:FILEGROUP_ID
filegropy_id函數(shù)用于獲取文件組的唯一標(biāo)識(shí)符(int數(shù)據(jù)類型)
語法格式:
FILEGROUP_ID( 'filegropy_name' )
參數(shù)中的filegropy_name是sysname類型的數(shù)據(jù)庫名稱,可以從sys.filegroups系統(tǒng)視圖中查詢得到。
返回值:
Int數(shù)據(jù)類型的文件組標(biāo)識(shí)符。
示例:
select filegroup_id('NHiberna') --輸出 null select filegroup_id('PRIMARY') --輸出 1
8、獲取文件組名稱:FILEGROUP_NAME
filegroup_name函數(shù)用于獲取文件組的名稱(nvarchar數(shù)據(jù)類型)。
語法格式:
filegroup_name(filegroup_id)
參數(shù)中的filegroup_id是int數(shù)據(jù)類型的文件組標(biāo)識(shí)符,要獲得該標(biāo)識(shí)符,可以查詢sys.filegroups系統(tǒng)視圖
返回值:
nvarchar(128)數(shù)據(jù)類型的文件組名稱
示例:
select filegroup_name(1) --輸出 PRIMARY
9、獲取文件組屬性值:FILEGROUPPROPERTY
filegroupproperty函數(shù)用于獲得指定文件組的指定屬性值。
語法格式:
filegroupproperty(filegroupname,property)
參數(shù)說明:
- filegroup_name:表示要為其返回屬性信息的文件組名稱,nvarchar(128)數(shù)據(jù)類型,可以通過sys.filegroups列獲得。
- property:表示要返回的屬性,數(shù)據(jù)類型為varchar(128)。
常見的property屬性值列表
屬性值
屬性值 | 說明 | 返回值 |
---|---|---|
IsReadOnly | 文件組是否只讀 | Int、Null |
IsUserDefinedEG | 是否為用戶定義的文件組 | Int、Null |
IsDefault | 是否默認(rèn)的文件組 | Int、Null |
示例:
select filegroupproperty('PRIMARY','isreadonly') --輸出 0
10、獲得文件標(biāo)識(shí)符:FILE_ID
file_id函數(shù)用于獲取數(shù)據(jù)庫的文件,包括日志文件和數(shù)據(jù)文件的標(biāo)識(shí)符。文件標(biāo)識(shí)符用于在數(shù)據(jù)庫中唯一區(qū)分。
語法格式:
FILE_ID( file_name )
參數(shù)中的file_name是sysname類型的文件名稱,可以通過查詢系統(tǒng)視圖sys.database_files中的name列來獲得。
返回值:
smallint數(shù)據(jù)類型的文件標(biāo)識(shí)符。
示例:
select * from sys.database_files --查出有哪些數(shù)據(jù)庫文件 select file_id('NHibernate') --輸出 1 查出NHibernate數(shù)據(jù)庫文件對(duì)應(yīng)的fileid
11、獲取文件名稱:FILE_NAME
file_name函數(shù)用于獲取當(dāng)前數(shù)據(jù)庫的邏輯名稱(nvarchar數(shù)據(jù)類型),這里是邏輯名稱而不是包含路徑的物理名稱。
語法格式:
file_name(file_id)
參數(shù)中的file_id是int數(shù)據(jù)類型的數(shù)據(jù)庫標(biāo)識(shí)符??梢圆樵僲aster數(shù)據(jù)庫的sys.master_files系統(tǒng)視圖的file_id列獲得服務(wù)器上所有數(shù)據(jù)庫的文件ID,也可以查詢某個(gè)數(shù)據(jù)庫的sys.database_files系統(tǒng)視圖的file_id列獲得該數(shù)據(jù)庫的文件的ID。
返回值:
nvarchar(128)數(shù)據(jù)類型的邏輯文件名稱。
示例:
select * from sys.database_files --查出有哪些數(shù)據(jù)庫文件 select file_id('NHibernate') --輸出 1 查出NHibernate數(shù)據(jù)庫文件對(duì)應(yīng)的fileid select file_name(1) -- 輸出 NHibernate
12、獲取文件屬性值:FILEPROPERTY
fileproperty函數(shù)用于獲得指定文件的指定屬性值。
語法格式:
fileproperty (file_name ,property )
參數(shù)說明:
- file_name:表示要為其返回屬性信息的文件的邏輯名稱,nvarchar(128)數(shù)據(jù)類型,可以通過sys.database_files系統(tǒng)視圖查詢name列獲得。
- property:表示要返回的屬性,數(shù)據(jù)類型為varchar(128)。
常見的property屬性值的取值如下:
屬性值
屬性值 | 說明 | 返回值 |
---|---|---|
IsReadOnly | 文件是否只讀 | Int 1代表True,0代表False |
IsPrimaryFile | 是否為主要數(shù)據(jù)文件 | 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
到此這篇關(guān)于SQL Server元數(shù)據(jù)函數(shù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。