砂拉豆 发表于 2015-7-5 04:35:59

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只能读取和更新最后一条数据,如果从大数据方面考虑也可以理解。不知您有何高见?
页: [1]
查看完整版本: Sql Server Text 类型列 查询和更新