exec sp_executesql 语句长度超过8000 怎么解决?

于娜 2008-08-25 09:27:25
declare @sql varchar(8000)
set @sql = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.................'
EXEC SP_EXECUTESQL @sql,N'@total INT OUT',@total OUT

如果超过@sql 超过8000 用下面写法,仍然不行,不能用 + 号,怎么办?
EXEC SP_EXECUTESQL @SQL1 + @SQL2 + SQL3, N'@total INT OUT',@total OUT -- 错误






事先说明一下,必须得用 SP_EXECUTESQL ,不能用EXEC(@SQL),因为sql语句中有一个输出参数,要返回一个求和值.

...全文
582 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
viva369 2008-08-26
  • 打赏
  • 举报
回复
2000的限制,无解,自己写个sp
viva369 2008-08-26
  • 打赏
  • 举报
回复
2000里的限制,无解!自己写个sp
火星求索 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 roy_88 的回复:]
改用exec('SQL')
[/Quote]
IAmXirour 2008-08-25
  • 打赏
  • 举报
回复
换条路子,不要跟系统规则过不去,呵呵
等不到来世 2008-08-25
  • 打赏
  • 举报
回复
如果设为max仍不能解决,
则可以考虑综合使用其他方法,
比如用临时表存储一些中间结果,
或者用游标(不推荐)等等。
moqiyayan 2008-08-25
  • 打赏
  • 举报
回复
分开写
yaoxiaoxiang 2008-08-25
  • 打赏
  • 举报
回复
怎么不加我,或者加我QQ:342525092
yaoxiaoxiang 2008-08-25
  • 打赏
  • 举报
回复
找本数据库底层的书看看
nzperfect 2008-08-25
  • 打赏
  • 举报
回复
nvarchar(max)
chuifengde 2008-08-25
  • 打赏
  • 举报
回复
由于sp_executesql受限制,没什么好办法,如果仅为了得到一个求和值,可以选创建只有一个字段的临时表,然后执行exec把这个结果insert到临时表中,再取出来
中国风 2008-08-25
  • 打赏
  • 举报
回复
改用exec('SQL')
ziqing_1_2_3 2008-08-25
  • 打赏
  • 举报
回复
同意楼上
水族杰纶 2008-08-25
  • 打赏
  • 举报
回复
SQL2005 varchar(MAX)
SQL2000 Ntext ,Text
于娜 2008-08-25
  • 打赏
  • 举报
回复
胡说
shili150 2008-08-25
  • 打赏
  • 举报
回复

那就设置大一点好了

34,874

社区成员

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

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