首頁 > 軟體

SQL Server中後設資料函數的用法

2022-05-21 19:01:08

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列Int  1代表True  0代表False
TableHasPrimaryKey表中是否含有主鍵Int  1代表True  0代表False
TableHasIndex表中是否含有索引Int  1代表True  0代表False
TableHasForeignKey表中是否含有外來鍵Int  1代表True  0代表False
SchemaId物件的架構IDInt
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

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

到此這篇關於SQL Server後設資料函數的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com