SQL Server 2008提供了称为元数据函数的一组函数。这些函数使你可以提取关于数据库和数据库对象的信息。例如,你可以提取赋予数据库,对象,表或者数据类型的ID。你还可以查看各种类型对象的属性设置,比如索引是否为簇索引,或者列是否允许为空值。
这里我将给你介绍几个元数据函数,并给出一些示例来演示它们的用法。在我创建这些例子时,我都是在“AdventureWorks2008”示例数据库的上下文环境中运行的。一些示例还引用了“AdventureWorks2008”数据库,但是你可以很容易地用其他数据库替代。 注意:尽管我讲到了许多元数据函数,我也没有把所有元数据函数都讲完。
请一定参考……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
SQL Server 2008提供了称为元数据函数的一组函数。这些函数使你可以提取关于数据库和数据库对象的信息。例如,你可以提取赋予数据库,对象,表或者数据类型的ID。你还可以查看各种类型对象的属性设置,比如索引是否为簇索引,或者列是否允许为空值。
这里我将给你介绍几个元数据函数,并给出一些示例来演示它们的用法。在我创建这些例子时,我都是在“AdventureWorks2008”示例数据库的上下文环境中运行的。一些示例还引用了“AdventureWorks2008”数据库,但是你可以很容易地用其他数据库替代。
注意:尽管我讲到了许多元数据函数,我也没有把所有元数据函数都讲完。请一定参考SQL Server 2008联机丛书中的“元数据函数(Transact-SQL)”来获取完整列表。从那里你可以链接到每个函数的主题介绍中,了解有关函数如何使用的详细说明。
查看对象名称和ID
我们要看的前两个元数据函数是“DB_ID”和“DB_NAME”。你可以猜到,“DB_ID”返回指定数据库或者当前数据库的ID,而“DB_NAME”返回指定数据库或者当前数据库的名称。下面的SELECT语句演示了如何使用这两个函数:
SELECT DB_ID() AS Id_DefaultDB, DB_ID('AdventureWorksDW2008') AS Id_SpecificDb, DB_NAME() AS Name_DefaultDb, DB_NAME(10) AS Name_SpecificDb; |
“DB_ID”函数可以接收一个参数:一个字符串值,代表数据库的名称。我在“DB_ID”的第一个例子中没有包含该参数,因此该函数返回当前数据库的ID,本例中就是“AdventureWorks2008”。在“DB_ID”函数的第二个例子中,我指定了“AdventureWorksDW2008 ”数据库作为参数。不过,要注意该名称必须用单引号括起来。
“DB_NAME”函数的用法也类似,只有一点差异就是它的参数是一个整形(Int)值,而不是字符串。在“DB_NAME”的第一个例子中,仍然是针对当前数据库。在“DB_NAME”的第二个例子中,我指定的参数值是10,它是我系统中“AdventureWorksDW2008 ”数据库的ID。
该SELECT语句返回结果如下表所示:
Id_DefaultDb | Id_SpecificDb | Name_DefaultDb | Name_SpecificDb |
8 | 10 | AdventureWorks2008 | AdventureWorksDW2008 |
“DB_ID”的第一个例子返回的值是8,这是我系统中“AdventureWorks2008 ”数据库的ID,而该函数的二个例子返回的是10。正如你所预料的,“DB_NAME”函数的第一个例子返回“AdventureWorks2008 ”数据库,第二个例子返回“AdventureWorksDW2008”。
接下来我们要介绍的两个元数据函数是“SCHEMA_ID”和“SCHEMA_NAME”,它们与“DB_ID”和“DB_NAME”也类似。“SCHEMA_ID”函数返回与对象名称有关的对象ID,接收一个非必填的字符串参数(对象名称)。“SCHEMA_NAME”函数返回指定对象ID的对象名称,接收一个非必填的整形参数(对象ID)。下面的SELECT语句展示了这两个函数的用法:
SELECT SCHEMA_ID() AS Id_DefaultSchema, SCHEMA_ID('Sales') AS Id_SpecificSchema, SCHEMA_NAME() AS Name_DefaultSchema, SCHEMA_NAME(9) AS Name_SpecificSchema; |
如果你没有指定对象名称或者ID,函数就会返回该对象相关联的调用者的信息。例如,与我关联的该对象是“dbo”,对象ID是1。那意味着“SCHEMA_ID”的第一个例子返回值为1,而“SCHEMA_NAME”的第一个例子返回值是“dbo”,如下面的结果所示:
Id_DefaultSchema | Id_SpecificSchema | Name_DefaultSchema | Name_SpecificSchema |
1 | 9 | dbo | Sales |
要注意我使用“Sales”作为“SCHEMA_ID”第二个例子的参数。如该结果所示,与该对象关联的ID是9,这一点可以由“SCHEMA_NAME”函数第二个例子返回的结果得到验证。
翻译
相关推荐
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。
-
配置SQL Server数据库恢复模式的两种方法
本文我们讨论了配置SQL Server恢复模式的两种方式,用T-SQL或者SQL Server管理工具都可以修改恢复模式的设置。
-
用T-SQL在SQL Server 2012中创建用户自定义角色
SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。