利用T-SQL元数据函数获取数据库文件信息

日期: 2010-10-14 作者:Robert Sheldon翻译:冯昀晖 来源:TechTarget中国 英文

本系列文章的第一部分讲解了如何使用基本的元数据函数查看对象名称和ID,第二部分介绍了另外的元数据函数的用法,比如如何查看各种对象的属性设置。在本文中,你将学会如何利用元数据函数查看数据库文件和文件组的详细信息。   查看文件信息   除了获取对象和属性的信息,你还可以利用元数据函数查看有关数据库文件和它们文件组的有关详细信息。例如,在下面的例子中,我利用“FILE_IDEX”,“FILE_NAME”,“FILEGROUP_ID”和“ FILEGROUP_NAME”函数来获取支持“AdventureWorks2008 ”数据库的有关文件和文件组的数据:   SELECT   FILE_IDEX(……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

本系列文章的第一部分讲解了如何使用基本的元数据函数查看对象名称和ID,第二部分介绍了另外的元数据函数的用法,比如如何查看各种对象的属性设置。在本文中,你将学会如何利用元数据函数查看数据库文件和文件组的详细信息。

  查看文件信息

  除了获取对象和属性的信息,你还可以利用元数据函数查看有关数据库文件和它们文件组的有关详细信息。例如,在下面的例子中,我利用“FILE_IDEX”,“FILE_NAME”,“FILEGROUP_ID”和“ FILEGROUP_NAME”函数来获取支持“AdventureWorks2008 ”数据库的有关文件和文件组的数据:

  SELECT
  FILE_IDEX('AdventureWorks2008_Data') AS FileId,
  FILE_NAME(1) AS FileName,
  FILEGROUP_ID('primary') AS FileGroupId,
  FILEGROUP_NAME(1) AS FileGroupName;

  “FILE_IDEX”函数返回与数据库文件相关联的ID。你可以看到,调用该函数时,你必须传递一个文件名作为参数。“ FILE_NAME”函数根据你参数中输入的ID返回对应的文件名。“ FILEGROUP_ID”函数返回文件组相关联的ID。同样,你必须提供文件组的名称。最后,“FILEGROUP_NAME”函数根据你提供的ID返回文件组的名称。下面的SELECT语句返回了如下结果:

FileIdFileNameFileGroupIdFileGroupName
1AdventureWorks2008_Data1PRIMARY

  结果确认,“AdventureWorks2008_Data”文件的ID是1,主文件组的ID也是1。

  SQL Server还支持用元数据函数查看文件和文件组的属性。例如,你可以利用“FILEPROPERTY ”函数获取指定文件的属性设置。要使用该函数,你必须指定文件名以及属性名称,请看下面的SQL语句:

  SELECT
  FILEPROPERTY('AdventureWorks2008_Data',
  'IsReadOnly') AS ReadOnly,
  FILEPROPERTY('AdventureWorks2008_Data',
  'IsPrimaryFile') AS PrimaryFile,
  FILEPROPERTY('AdventureWorks2008_Data',
  'SpaceUsed') AS SpaceUsed;

  你可以看到,“FILEPROPERTY ”函数与你之前看到的属性函数类似。首先,我指定了文件名(AdventureWorks2008_Data),然后又指定了属性名。“IsReadOnly ”属性表示文件是否是只读的,“IsPrimaryFile ”属性表示该文件是否是主数据库文件,“SpaceUsed ”属性表示已经给该文件分配了多少页。如下表所示,该文件不是只读的,但是它是主文件,它已经被分配了23240页:

ReadOnlyPrimaryFileSpaceUsed
0123240

  SQL Server还支持“FILEGROUPPROPERTY ”函数,你可以用它查看文件组明细信息。同样,你必须指定两个参数:文件组名称和属性名称。在下面的SELECT语句中,我获取了主文件组的信息:

  SELECT
  FILEGROUPPROPERTY('primary', 'IsReadOnly')
  AS ReadOnly,
  FILEGROUPPROPERTY('primary', 'IsUserDefinedFg')
  AS UserDefined,
  FILEGROUPPROPERTY('primary', 'IsDefault')
  AS DefaultFg;

  正如你所预料的,“IsReadOnly ”属性表示该文件组是否是只读,“IsUserDefinedFg ”属性表示是否是用户定义的文件组,“IsDefault ”属性表示该文件组是否是默认的文件组。下面的结果展示了该文件组既不是只读的,也不是用户定义的,但是它是默认的文件组:

ReadOnlyUserDefinedDefaultFg
001

  到目前为止,你应该已经掌握元数据函数了。在这一组简短的系列文章中,我给你介绍了各种元数据函数,但是,出于简洁性考虑,我没有讲解到每个函数的细节,以及在T-SQL语句中,你可以怎样进一步地利用这些函数。也就是说,我没有深入介绍这些函数的限制和约束,但是你可以通过阅读SQL Server联机丛书中相关函数的主题来了解这些细节信息。经过了这一系列的学习,你现在应该对这些函数足够熟悉了,可以访问每个数据库中可用的大部分元数据了。

相关推荐