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只能讀取和更新最后一條數據,如果從大數據方面考慮也可以理解。不知您有何高見?