XML类型的SQL参数

有的时候,我们常常需要将一个数据表格当做参数发送给存储过程,然后进行操作,以往,我常常用逗号或者其他分隔符将数据拼成一个字符传,但这个方法有限制,sql verchar类型只能达到8000字符,现在有了SQL2005了,我们可以直接用XML当做参数了,这样既方便有没有那个限制了。自己也是刚刚使用了几次,有些功能还是不是很清楚。只将自己学习的两种方法总结一下。

 一种方法,当做表用,如下,返回多列。

@PeakHours xml,
DECLARE @NEWPeakHours TABLE([WeekDay] smallint,[PeakHourType] varchar(
10),[StartTime] datetime,[EndTime] datetime,IsChanged bit)

INSERT INTO @NEWPeakHours
SELECT 
T.Records.query(
'WD').value('.','smallint'as WD,
T.Records.query(
'TP').value('.','varchar(10)'as TP,
T.Records.query(
'ST').value('.','datetime'as ST,
T.Records.query(
'ET').value('.','datetime'as ET,
0

 from @PeakHours.nodes('/RP/PH') AS T(Records) 


另外一种方法, 返回单列

select Stores.ID.value('.', 'int') as StoreId

from @Stores.nodes('/ES/ST') Stores(ID) 

 

 

posted @ 2011-05-24 14:09 Vincent.Tianjin 阅读(60) 评论(0) 编辑 收藏
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 2055435 5qU+bCf1P3s=