探索SQL Server 2008中的T-SQL元数据函数(下)

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

接上文:探索SQL Server 2008中的T-SQL元数据函数(上)     另一组类似的元数据函数是“OBJECT_ID”和“OBJECT_NAME”。第一个函数返回模式范围内的任何对象,比如表或者视图。第二个函数返回模式范围内指定ID的任何对象名称。   “OBJECT_ID”函数接收一个参数:对象名称。

如果你没有指定完整修饰的名称,那么该对象被认为是属于当前活动的数据库。如果你想提取另一个数据库中对象的ID,你必须增加数据库名称以使该名称完整。“OBJECT_NAME”函数可以接收一个或者两个参数。第一个参数就是你想提取的对象名称对应的ID。

第二个可选参……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

接上文:探索SQL Server 2008中的T-SQL元数据函数(上)

    另一组类似的元数据函数是“OBJECT_ID”和“OBJECT_NAME”。第一个函数返回模式范围内的任何对象,比如表或者视图。第二个函数返回模式范围内指定ID的任何对象名称。

  “OBJECT_ID”函数接收一个参数:对象名称。如果你没有指定完整修饰的名称,那么该对象被认为是属于当前活动的数据库。如果你想提取另一个数据库中对象的ID,你必须增加数据库名称以使该名称完整。“OBJECT_NAME”函数可以接收一个或者两个参数。第一个参数就是你想提取的对象名称对应的ID。第二个可选参数是包含该对象的数据库ID。如果你想获取非当前数据库对象名称,你应该指定数据库ID。

  下面的SELECT语句展示了如何使用“OBJECT_ID”函数和“OBJECT_NAME”函数:

  SELECT
  OBJECT_ID('Sales.SalesPerson')
  AS Id_DefaultDb,
  OBJECT_ID('AdventureWorksDW2008.dbo.FactInternetSales')
  AS Id_SpecificDb,
  OBJECT_NAME(1298103665)
  AS Name_DefaultDb,
  OBJECT_NAME(309576141, 10)
  AS Name_SpecificDb;

  在“ OBJECT_ID”的第一个例子中,我指定了当前活动数据库(“AdventureWorks2008”数据库)中模式范围内对象的名称(“Sales.SalesPerson”表)。在该函数的第二个例子中我指定了一个全修饰的名称:“AdventureWorksDW2008”数据库中的“dbo.FactInternetSales”表。

  我在“OBJECT_NAME”函数的第一个例子中用到的参数是“AdventureWorks2008 ”数据库中“SalesPerson”表的ID。在该函数的第二个例子中我首先指定了“SalesPerson ”表的ID,然后是“AdventureWorksDW2008 ”数据库的ID。该SELECT语句返回结果如下:

Id_DefaultDbId_SpecificDbName_DefaultDbName_SpecificDb
1298103665309576141SalesPersonFactInternetSales

  你可以看到,这些函数返回指定对象的名称和ID,但是你可以容易地把这些ID和名称与其他类型对象连接。要得到SQL Server 2008中提供的模式范围内的对象清单,请查看SQL Server联机丛书“sys.objects (Transact-SQL)”主题。

  另一组可以用来查找对象名称和它们ID的函数是“TYPE_ID”和“ TYPE_NAME”。你可以用这些函数查找ID和指定数据类型的名称。“TYPE_ID”函数接收数据类型名称作为它的参数,而“ TYPE_NAME”函数接收类型ID作为参数。例如,下面的SELECT语句返回nvarchar数据类型ID,并返回ID是231的数据类型名称。

  SELECT
  TYPE_ID('nvarchar') AS TypeId,
  TYPE_NAME(231) AS TypeName;

  该SELECT语句返回如下结果:

TypeIdTypeName
231nvarchar

  正如你所预料的,结果确认了nvarchar数据类型的ID是231。

相关推荐