如何将ntext列的数据分解成多个nvarchar(8000)

rainbowjjx 2005-05-14 01:03:47
如何将ntext列的数据分解成多个nvarchar(8000)
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2005-05-14
  • 打赏
  • 举报
回复
因为你提的问题是处理ntext列, 而pubs数据库中虽然是text列,但里面的数据没有包含双字节字符,所以正好拿来做示例.

text分拆的双字节字符处理是很麻烦的. 所以包含双字节字符的text列不是我的示例能处理的. 但ntext和不包含双字节字符的数据用我的方法处理是没问题的.
zjcxc 元老 2005-05-14
  • 打赏
  • 举报
回复
楼主,去测试了再回复. 别想当然.

rainbowjjx 2005-05-14
  • 打赏
  • 举报
回复
pubs.pr_info是text类型,当长度>8000时substring()是不能应用此栏位的!!!!
zjcxc 元老 2005-05-14
  • 打赏
  • 举报
回复
--示例(假设分拆pubs数据库,pub_info表的pr_info列)

use pubs

declare @i int
select @i=(max(datalength(pr_info))+7999)/8000
from pub_info
set rowcount @i
select id=identity(int,0,1) into # from syscolumns a,syscolumns b
set rowcount 0

select a.pub_id,b.id,substring(a.pr_info,b.id*8000+1,8000)
from pub_info a,# b
where (datalength(pr_info)+7999)/8000>b.id
order by a.pub_id,b.id

drop table #

34,587

社区成员

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

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