T-SQL系统函数:利用语言工具

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

本系列文章的第一部分讲述了如何利用系统函数提取有关数据修改,服务器属性和用户的信息。本文介绍了其它系统函数的用法,包括如何查看会话信息,如何利用SQL Server语言工具增强你的T-SQL语句功能。   利用语言工具   总结起来,我们来看看你能在T-SQL语句中用作工具的函数。这些函数类型通常帮助获取指定类型的数据。

例如,下面的“SELECT”语句利用了T-SQL的“NEWID ”函数来创建“uniqueidentifier”类型的唯一数值。   SELECT NEWID() AS NewGuid;   从下面的结果中你可以看到,该语句返回一个新的值,显示为“uniqueidentifie……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

本系列文章的第一部分讲述了如何利用系统函数提取有关数据修改,服务器属性和用户的信息。本文介绍了其它系统函数的用法,包括如何查看会话信息,如何利用SQL Server语言工具增强你的T-SQL语句功能。

  利用语言工具

  总结起来,我们来看看你能在T-SQL语句中用作工具的函数。这些函数类型通常帮助获取指定类型的数据。例如,下面的“SELECT”语句利用了T-SQL的“NEWID ”函数来创建“uniqueidentifier”类型的唯一数值。

  SELECT NEWID() AS NewGuid;

  从下面的结果中你可以看到,该语句返回一个新的值,显示为“uniqueidentifier”类型:

  你可以使用的另一个函数是“PARSENAME”,它支持你解析完全合格的组件对象名称。该函数有两个参数:完全合格的对象名称和你想识别的组件名称。例如,下面的“SELECT”语句中我使用“PARSENAME ”函数来解析独立组件“Address”表名。

  SELECT
  PARSENAME('WinSrv.AdventureWorks2008.Person.Address', 4)
  AS ServerName,
  PARSENAME('WinSrv.AdventureWorks2008.Person.Address', 3)
  AS DbName,
  PARSENAME('WinSrv.AdventureWorks2008.Person.Address', 2)
  AS SchemaName,
  PARSENAME('WinSrv.AdventureWorks2008.Person.Address', 1)
  AS ObjectName;

  如下面的结果所示,该函数解析了该表完全合格名称的每个组件:

  在下个例子中,我利用“ISDATE ”函数和“ISNUMERIC ”函数来识别指定值的数据类型:

  SELECT
  ISDATE('2010-08-04 17:33:45.590') AS IsDatetime,
  ISNUMERIC('12ec3') AS IsNumber;

  “ISDATE ”函数识别作为入参传递的值是否是合法的日期时间值,而“ISNUMERIC ”函数识别入参传递的值是否是合法的数值。如果该值的类型争取,该函数就会返回值“1”,而如果该值的类型不正确,该函数返回的值为“0”。对于上面的例子,该语句返回结果如下:

  如你所见,第一个值是合法的日期时间值,而第二个值不是合法的数值。

  另一个有用的函数是“ISNULL ”函数,如果源值是null的话,该函数返回指定的值。例如,下面的“SELECT”语句我使用了“ISNULL ”函数,如果“SalesQuota ”的值是null的话就返回“0”:

  SELECT
  FirstName + ' ' + LastName AS FullName,
  ISNULL(SalesQuota, 0) AS SalesQuota
  FROM
  Sales.vSalesPerson
  WHERE
  CountryRegionName = 'United States';、

  在源数据中,有三行数据的“SalesQuota”值是null,它们是:Stephen Jiang, Amy Alberts 和 Syed Abbas。对于这三行,“ISNULL”函数对“SalesQuota ”值返回“0”,如下表所示:

  正如上面的例子和我前面的文章展示的那样,在操作SQL Server数据时系统函数非常有用。然而,我没有覆盖到每种分类中的所有可用函数。系统函数还包括错误处理函数,在你的T-SQL代码包含“TRY…CATCH”块时可以使用。

相关推荐