Sql Server Text 类型列 查询和更新

Text(ntext、image)类型为大数据字段,因为存储方式不同,也决定了其查询和更新不同于一般方法。

1、表定义:

2、查询:

Like查询是可用的:

select  * from dbo.node_def where comx like 'aaa'

推荐的READTEXT查询(全部):

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(comx) from node_def
READTEXT node_def.comx @ptrval 0 0;

更多参数,详见MSDN:http://msdn.microsoft.com/zh-cn/library/ms187365(v=sql.105).aspx

普通的select查询(换种思路,转换一下):

select  * from dbo.node_def where cast(comx as nvarchar) = 'aaa'

3、更新

UPDATETEXT方法:

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(comx) from node_def
UPDATETEXT node_def.comx @ptrval 0 null 'aaa'

更多参数参见MSDN:http://msdn.microsoft.com/zh-cn/library/ms189466.aspx

普通的update方法(换种思路,转换一下):

update node_def set comx = cast('aaa' as text)

4、总结:

通过类型转换的方式,也可以实现Text类型的select和update操作,但与官方推荐的READTEXT和UPDATETEXT相比操作简单,大数据时效率方面可能不敢恭维。

但是,貌似READTEXT和UPDATETEXT只能读取和更新最后一条数据,如果从大数据方面考虑也可以理解。不知您有何高见?

posted on 2013-06-28 14:11  一路前行  阅读(19695)  评论(0编辑  收藏  举报