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只能读取和更新最后一条数据,如果从大数据方面考虑也可以理解。不知您有何高见?