溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQL?Server中的元數(shù)據(jù)函數(shù)怎么用

發(fā)布時(shí)間:2022-05-23 09:35:19 來源:億速云 閱讀:130 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下SQL Server中的元數(shù)據(jù)函數(shù)怎么用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1、獲取數(shù)據(jù)庫(kù)標(biāo)識(shí)符:DB_ID

DB_ID函數(shù)用于獲取當(dāng)前數(shù)據(jù)庫(kù)的唯一ID(int數(shù)據(jù)類型),數(shù)據(jù)庫(kù)ID用于服務(wù)器上唯一區(qū)分書庫(kù)。

語法格式:

DB_ID (['database_name'])

參數(shù)中的database_name是sysname類型的數(shù)據(jù)庫(kù)名稱,為可選參數(shù)。如果沒有指定則返回當(dāng)前工作數(shù)據(jù)庫(kù)的ID。

返回值:

int數(shù)據(jù)類型的數(shù)據(jù)庫(kù)標(biāo)識(shí)符。

示例:

select DB_ID()    --輸出 8

2、獲取數(shù)據(jù)庫(kù)名稱:DB_NAME

DB_NAME函數(shù)用于紅區(qū)當(dāng)前數(shù)據(jù)庫(kù)的名稱(nvarchar數(shù)據(jù)類型)

語法格式:

DB_NAME(['database_id'])

參數(shù)中的database是int數(shù)據(jù)類型的數(shù)據(jù)庫(kù)標(biāo)識(shí)符,為可選參數(shù)。如果沒有指定則返回當(dāng)前工作數(shù)據(jù)庫(kù)的名稱。

示例:

select DB_NAME()    --輸出 NHibernate

3、獲取數(shù)據(jù)庫(kù)屬性:DATABASEPROPERTYEX

databasepropertyex函數(shù)用于獲得指定的某個(gè)數(shù)據(jù)庫(kù)的某個(gè)屬性的當(dāng)前設(shè)置。執(zhí)行一次返回一個(gè)屬性值,若要返回多個(gè)屬性值,可以查詢master系統(tǒng)數(shù)據(jù)庫(kù)的sys.database系統(tǒng)視圖。

語法格式:

databasepropertyex(database,property)

參數(shù)說明:

  • database:表示要為其返回命名屬性的信息的數(shù)據(jù)庫(kù)名稱,nvarchar(128)數(shù)據(jù)類型

  • property:表示要返回的數(shù)據(jù)庫(kù)屬性,數(shù)據(jù)類型為Varchar(128)

示例:

select databasepropertyex('NHibernate','recovery')    --輸出 SIMPLE 這是數(shù)據(jù)庫(kù)的恢復(fù)模式

Property屬性的取值以及說明如下:

屬性值說明返回值
Collation排序規(guī)則名稱nvarchar(128)、null
IsAutoClose數(shù)據(jù)庫(kù)的自動(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ù)庫(kù)的恢復(fù)模式nvarchar(128)
Status數(shù)據(jù)庫(kù)的狀態(tài)nvarchar(128)
Updateability是否可以修改數(shù)據(jù)nvarchar(128)
UserAccess哪些用戶可以訪問數(shù)據(jù)庫(kù)nvarchar(128)
Version數(shù)據(jù)庫(kù)內(nèi)部版本號(hào)Int

4、獲取數(shù)據(jù)庫(kù)對(duì)象標(biāo)識(shí)符:OBJECT_ID

object_id函數(shù)用于獲取特定數(shù)據(jù)庫(kù)、特定架構(gòu)下特定數(shù)據(jù)對(duì)象的唯一ID(int數(shù)據(jù)類型),對(duì)象的ID用于在數(shù)據(jù)庫(kù)內(nèi)區(qū)分唯一。

語法格式:

object_id( '[database_name . [schema_name] . | schema_name . ]object_name'
         [,'object_type']
      ')

參數(shù)說明:

database_name

database_name數(shù)據(jù)庫(kù)名稱
schema_name架構(gòu)名稱
object_name對(duì)象名稱
object_type對(duì)象類型

返回值:

Int數(shù)據(jù)類型的對(duì)象標(biāo)識(shí)符。

5、獲取數(shù)據(jù)庫(kù)對(duì)象名稱:OBJECT_NAME

object_name函數(shù)用于獲取指定數(shù)據(jù)庫(kù)、指定架構(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ù)庫(kù)對(duì)象屬性值:OBJECTPROPERTY

objectproperty函數(shù)用于獲得指定數(shù)據(jù)庫(kù)、指定架構(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)IDInt
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ù)庫(kù)名稱,可以從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ù)庫(kù)的文件,包括日志文件和數(shù)據(jù)文件的標(biāo)識(shí)符。文件標(biāo)識(shí)符用于在數(shù)據(jù)庫(kù)中唯一區(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ù)庫(kù)文件
    select file_id('NHibernate')    --輸出 1 查出NHibernate數(shù)據(jù)庫(kù)文件對(duì)應(yīng)的fileid

11、獲取文件名稱:FILE_NAME

file_name函數(shù)用于獲取當(dāng)前數(shù)據(jù)庫(kù)的邏輯名稱(nvarchar數(shù)據(jù)類型),這里是邏輯名稱而不是包含路徑的物理名稱。

語法格式:

file_name(file_id)

參數(shù)中的file_id是int數(shù)據(jù)類型的數(shù)據(jù)庫(kù)標(biāo)識(shí)符??梢圆樵僲aster數(shù)據(jù)庫(kù)的sys.master_files系統(tǒng)視圖的file_id列獲得服務(wù)器上所有數(shù)據(jù)庫(kù)的文件ID,也可以查詢某個(gè)數(shù)據(jù)庫(kù)的sys.database_files系統(tǒng)視圖的file_id列獲得該數(shù)據(jù)庫(kù)的文件的ID。

返回值:

nvarchar(128)數(shù)據(jù)類型的邏輯文件名稱。

示例:

select * from sys.database_files    --查出有哪些數(shù)據(jù)庫(kù)文件
    select file_id('NHibernate')    --輸出 1 查出NHibernate數(shù)據(jù)庫(kù)文件對(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

以上就是“SQL Server中的元數(shù)據(jù)函數(shù)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI