1. 程式人生 > >(3.13)常用知識-元數據函數

(3.13)常用知識-元數據函數

ace date cts 標識符 SQ mtab 參數說明 統計 返回

元數據函數

  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

轉自:http://www.cnblogs.com/kissdodog/p/3141367.html

  13.COL_LENGTH查看列長度

    COL_LENGTH(N‘架構.表名‘, N‘字段名‘)

(3.13)常用知識-元數據函數