一个update表中text类型字段的奇怪问题

wyanshan 2012-09-13 10:33:23
比如DiaryLeaderIdea字段是text类型,如果里面原先有内容的话,我执行下面的:
update Diary set DiaryLeaderIdea='你好'+cast(DiaryLeaderIdea as varchar(8000)) where DiaryID=6025

可以正常在原先内容上面添加。
但是!如果原来DiaryLeaderIdea里面是空的,执行上面的语句的话,也执行了,不出错,就是没有把数据添加进去,还是空的里面。奇怪了!
请大侠支招儿!
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2012-09-13
  • 打赏
  • 举报
回复
如果大于8000字节,需要用UPDATETEXT

如果是SQL05以上版本用varchar(max)类型代替,用WRITE处理
举个例子如下:
DECLARE @ TABLE(c TEXT)
INSERT @
SELECT NULL
UPDATE a SET c='你好'+ISNULL(CAST(c AS VARCHAR(8000)),'') FROM @ AS a

UPDATE a SET c=CASE WHEN c IS NULL THEN '你好' ELSE CAST(c AS VARCHAR(8000))+'你好' end FROM @ AS a
SELECT * FROM @
spiritofdragon 2012-09-13
  • 打赏
  • 举报
回复
update Diary set DiaryLeaderIdea='你好'+cast(isnull(DiaryLeaderIdea ,'') as varchar(8000)) where DiaryID=6025 ?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧