ms sql 超长的文本

什么逻辑 2014-07-25 08:16:42
MS SQL 2008 R2

通过计算获得一个 nvarchar(max) 很长很长 远超8000长度
算出来了 但是无法存入表字段
像通过xp_cmdshell放进文本文件 但是命令超长度。还是失败了
有什么方法吗?
必须存放在服务器上 而且以后使用时
必须通过SQL的存储过程或视图往外丢

必须满足上面两点其他都可以妥协
...全文
220 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-07-26
  • 打赏
  • 举报
回复
无法插入是报错还是插入不完整?
霜寒月冷 2014-07-26
  • 打赏
  • 举报
回复
从你的描述我个人觉得你得妥协。如果确实设置了 nvarchar(max) 还不够用,只能从你的文本文件入手了。 1.文本文件里面空行可以合并的合并掉 2.文本文件分割成几段来存储 3.如果上面两个都不考虑,那就把文本以文件的形式存在服务器某个目录下
什么逻辑 2014-07-26
  • 打赏
  • 举报
回复
怎么引用错了。。。。。。 采用了 lyyk2698e 的方法
什么逻辑 2014-07-26
  • 打赏
  • 举报
回复
SQL语句本身应超不过长度 我仔细校验了下原因 declare @x nvarchar(max) @x是一条条固定长度的记录拼接起来的 记录数达到某个阈值前 一切正常 而超过阈值后 @x 它本身的值正确 但插入表 或者 赋值给另一个变量 比如: declare @y nvarchar(max) set @y=@x @y 就变成 null了 肯定就错了啊 还有一点不解的是 无论是否 set textsize declare @x nvarchar(max) set @x=REPLICATE('1',100000) select LEN(@x) 得到的总是8000 具体原因没有找到 最后采用了
引用 7 楼 happk007pk 的回复:
这个要求是不是有点奇葩了
haitao 2014-07-26
  • 打赏
  • 举报
回复
就看一次性提交的sql最大允许多少字节了 update ... set fvarcharmax='...1G字节...' where ...
---涛声依旧--- 2014-07-26
  • 打赏
  • 举报
回复
用程序应该不会有问题的
---涛声依旧--- 2014-07-26
  • 打赏
  • 举报
回复
楼主是在查询分析里执行的吗?如果是,你要设置一下set textsize的
lyyk2698e 2014-07-26
  • 打赏
  • 举报
回复
加一个排序字段 把原数据砍成多行存??
什么逻辑 2014-07-26
  • 打赏
  • 举报
回复
这个要求是不是有点奇葩了
什么逻辑 2014-07-26
  • 打赏
  • 举报
回复
写文本也行 不过那就得通过程序了 目前是寻求SQLserver本身 如果有这样方法可行 那就尽量不用程序 实在没辙了 才考虑程序
什么逻辑 2014-07-26
  • 打赏
  • 举报
回复
字段是nvarchar(max) 取值没问题 是无法存入表中 表的数据结构设为nvarchar(max)或text 结果都无法存进去 无法插入
道玄希言 2014-07-25
  • 打赏
  • 举报
回复
那你用 TEXT 类型字段保存,可以不? TEXT 貌似最大长度为2G了
LongRui888 2014-07-25
  • 打赏
  • 举报
回复
你的字段没有设置为 nvarchar(max)类型吗

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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