使用XML在SQL Server上创建计算列(下)

日期: 2009-10-18 作者:Robert Sheldon翻译:张峰 来源:TechTarget中国 英文

Value()方法带两个参数。第一个参数定义了目标XML列使用的名称空间,第二个参数包含接收实际数据的Xquery表达式。在这个例子中,表达式使用concat()方法来连接姓与名,就像它们在XML文件中。要想了解更多的关于如何使用value()方法,以及如何创建Xquery表达式,请查看我的文章《Retrieve XML data values with XQuery》。

  一旦创建了函数,你可以通过从hr.CandidateNames表的JobResume列中接收数据测试:   SELECT CandidateID, hr.FullName(JobResume) AS FullName  ……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

Value()方法带两个参数。第一个参数定义了目标XML列使用的名称空间,第二个参数包含接收实际数据的Xquery表达式。在这个例子中,表达式使用concat()方法来连接姓与名,就像它们在XML文件中。要想了解更多的关于如何使用value()方法,以及如何创建Xquery表达式,请查看我的文章《Retrieve XML data values with XQuery》。

  一旦创建了函数,你可以通过从hr.CandidateNames表的JobResume列中接收数据测试:

  SELECT CandidateID, hr.FullName(JobResume) AS FullName

  FROM hr.CandidateNames

  正如你所看到的,我已经传入了XML列名称,将其做为函数FullName的一个参数。SELECT语句应该返回以下结果:

CandidateID

FullName

1

Shai Bassli

2

Max Benson

3

Krishna Sunkammurali

4

Stephen Jiang

5

Thierry D'Hers

6

Christian Kleinerman

7

Lionel Penuchot

8

Peng Wu

9

Shengda Yang

10

Tai Yee

  (影响10行)

  注意,以上结果包含姓与名,正如它们在XML列中显示的一样。如果回到函数定义,可发现在value()方法中使用的Xquery表达式指定了此表达式返回值为NVARCHAR(60)类型,以适应Unicode字符,如查询结果集的最后三行中的那些字符。

  一旦函数经过测试,你就可以开始创建计算列:以下ALTER TABLE语句添加了FullName列到CandidateNames表中来:

  ALTER TABLE hr.CandidateNames

  ADD FullName AS hr.FullName(JobResume)

  我已经在计算列表达式中使用FullName函数,并将列JobResume作为参数传入函数。在运行ALTER TABLE语句后,你可以用以下SELECT语句测试数据是否已经被插入到计算列中:

  SELECT CandidateID, FullName FROM hr.CandidateNames

  运行以上语句后,应该返回与上文中相同的结果集。

  这就是在SQL Server中基于XML data数据创建的一个计算列。关键是创建一个函数来运行Xquery表达式,且稍后在计算列中使用此函数定义。要了解更多关于计算列、XML列、Xquery表达式的详细信息,请查看Microsoft SQL Server在线书籍。

翻译

张峰
张峰

相关推荐