接上文:探索SQL Server 2008中的T-SQL元数据函数(上) 另一组类似的元数据函数是“OBJECT_ID”和“OBJECT_NAME”。第一个函数返回模式范围内的任何对象,比如表或者视图。第二个函数返回模式范围内指定ID的任何对象名称。 “OBJECT_ID”函数接收一个参数:对象名称。
如果你没有指定完整修饰的名称,那么该对象被认为是属于当前活动的数据库。如果你想提取另一个数据库中对象的ID,你必须增加数据库名称以使该名称完整。“OBJECT_NAME”函数可以接收一个或者两个参数。第一个参数就是你想提取的对象名称对应的ID。
第二个可选参……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属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_DefaultDb | Id_SpecificDb | Name_DefaultDb | Name_SpecificDb |
1298103665 | 309576141 | SalesPerson | FactInternetSales |
你可以看到,这些函数返回指定对象的名称和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语句返回如下结果:
TypeId | TypeName |
231 | nvarchar |
正如你所预料的,结果确认了nvarchar数据类型的ID是231。
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。