MSSQL的nvarchar字段容纳超长字符的变通办法

MSSQL大文本字段解决方案
本文介绍了一种在MSSQL中处理超过nvarchar(4000)字符限制的方法,通过将大文本字段拆分为多个nvarchar字段,并提供插入、更新和检索的变通SQL语句,有效解决大文本存储问题。

在设计MSSQL数据表时,依实际需求,某字段需要使用nvarchar字段,但nvarchar字段最多能容纳4000个字符,如果需要容纳超过4000字符的信息,一般要改为使用ntext字段。但ntext字段有诸多限制,检索、插入、更新都比较麻烦。如何保持使用nvarchar字段的需求,又能容纳较多字符呢?笔者采用了如下变通措施,效果良好:

一、用“一分为几”的方法,把该字段分为几个字段,本例中预计该字段在实际应用中所要容纳的字符长度可能超过4000,但最多不会超过1万,因此一分为三,比如把a字段分拆为a1、a2、a3三个字段,类型均为nvarchar,长度均为4000,默认值均为空值(不让其为null值,这点比较重要)。

二、检索语句的变通写法:

set rs=conn.execute("select a1+a2+a3 as a from mytable")

vv=rs("a")

set rs=conn.execute("select a1,a2,a3 from mytable")

vv=rs("a1")&rs("a2")&rs("a3")

三、插入语句的变通写法:

vv="............." 

if len(vv)>3900 then

      v1=left(vv,3900)

      v2=mid(vv,3901)

      v3=""

      if len(v2)>3900 then

            v3=mid(v2,3901)

            v2=left(v2,3900)

else

      v1=vv

      v2=""

      v3=""

end if

insert into mytable (a1,a2,a3) values(v1,v2,v3)

截取字符长度设定为3900是为了预留一些余地,不应使用满顶的4000。

四、更新语句的变通写法:

思路类似上述插入的写法,通过判断字符串长度,分配到v1、v2、v3变量中,再进行update

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值