利用T-SQL元数据函数检查属性设置(上)

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

本系列文章的第一部分介绍了元数据的基本情况,以及如何利用它们查看对象名称和ID。本文讲解了其它元数据函数的用法,比如如何查看各种对象的属性设置。然后,第三部分会探索对数据库文件和文件组信息的使用。   查看对象属性   下一组元数据函数支持你获取各种数据库对象的属性设置。

在大部分这些函数中,你必须提供至少两个参数。一个参数指定具体对象,另一个指定你想获取的属性设置。   注意:要查看函数支持的属性列表,请查看SQL Server联机丛书关于该函数的主题。该主题提供了对该属性返回值的每个属性和明细的描述。

  我们要看的第一个函数是“DATABASEPROPERTYEX”。下面的SELECT语句……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

本系列文章的第一部介绍了元数据的基本情况,以及如何利用它们查看对象名称和ID。本文讲解了其它元数据函数的用法,比如如何查看各种对象的属性设置。然后,第三部分会探索对数据库文件和文件组信息的使用。

  查看对象属性

  下一组元数据函数支持你获取各种数据库对象的属性设置。在大部分这些函数中,你必须提供至少两个参数。一个参数指定具体对象,另一个指定你想获取的属性设置。

  注意:要查看函数支持的属性列表,请查看SQL Server联机丛书关于该函数的主题。该主题提供了对该属性返回值的每个属性和明细的描述。

  我们要看的第一个函数是“DATABASEPROPERTYEX”。下面的SELECT语句列出了该函数的三个例子,每个例子中都指定了不同的属性:

  SELECT
  DATABASEPROPERTYEX('AdventureWorks2008',
  'Collation') AS Collation,
  DATABASEPROPERTYEX('AdventureWorks2008',
  'IsAutoShrink') AS AutoShrink,
  DATABASEPROPERTYEX('AdventureWorks2008',
  'IsFullTextEnabled') AS FullTextEnabled;

  你可以看到,我首先指定了数据库(AdventureWorks2008)的名称,然后指定了属性名称(分别是:Collation, IsAutoShrink 和 IsFullTextEnabled)。该SELECT语句返回结果如下:

CollationAutoShrinkFullTextEnabled
SQL_Latin1_General_CP1_CI_AS01

  “Collation”属性返回指定名称数据库的默认排序规则,而“IsAutoShrink” 属性指定数据库文件是否设置为自动收缩模式。对于名称以“Is”打头的属性,返回值“1”表示“True”,返回值“0”表示“False”。如下面的结果所示,“AdventureWorks2008 ”数据库没有设置为自动收缩模式,而“IsFullTextEnabled ”表示指定数据库启用了全文搜索功能。

  “OBJECTPROPERTYEX ”函数返回启用范围对象的属性设置。该函数有两个参数:对象ID和属性名称。例如,下面的SELECT语句返回“SalesPerson ”表的属性设置,它的对象ID是“1298103665”:

  SELECT
  OBJECTPROPERTYEX(1298103665, 'BaseType')
  AS BaseType,
  OBJECTPROPERTYEX(1298103665, 'IsIndexed')
  AS Indexed,
  OBJECTPROPERTYEX(1298103665, 'IsUserTable')
  AS UserTable;

  我指定了三个属性:“BaseType”表示对象的基本类型,“IsIndexed ”表示索引是否定义在该对象上,“IsUserTable ”表示对象是否是用户定义的表。该SELECT语句返回如下结果:

BaseTypeIndexedUserTable
U11

  因为“BaseType”属性返回值为“U”,我们知道该对象是一个用户定义的表。值“U”是该对象的基本ID。你可以在SQL Server联机丛书“sys.objects (Transact-SQL)”主题中找到一个基本ID列表。

  “IsIndexed ”属性返回为“True”(1),因此我们知道该表是有索引的,“IsUserTable ”属性也返回“True”,因此我们知道该对象是一个用户定义的表。

相关推荐