SQL语句长度最大为4000,好烦

whidy 2005-10-15 06:29:08
在存储过程中,构造一个查询语句,结果语句长度超过4K,语句被截断
...全文
548 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxbyhcsdn 2005-10-18
  • 打赏
  • 举报
回复
你的Sql是 Select 还是 Insert 还是 Update??

hlq8210 2005-10-18
  • 打赏
  • 举报
回复
varchar 最长支持8000
你的SQL语句估计最长会超过8000吗?
会的话,请用多变量或多参数串接
whidy 2005-10-18
  • 打赏
  • 举报
回复
to salonstar:
长度可以超过了10K
whidy 2005-10-18
  • 打赏
  • 举报
回复
to zxbyhcsdn:
都有
salonstar 2005-10-18
  • 打赏
  • 举报
回复
請不要用nvarchar, 因為nvarchar長度為4000﹐而varchar 則可以長達8000
salonstar 2005-10-18
  • 打赏
  • 举报
回复
可以支持到8000﹐應該是你在構造時使用了char()變理﹐使得所構造出來的語句有截斷﹐你可以試試如下方法﹕
declare @a varchar(8000),@b varchar(8000),@c varchar(8000)
set @a = '......'
set @b = '......'
set @c = rtrim(@a) + rtrim(@b)
execute (@c)
這樣就不會被截斷
vivianfdlpw 2005-10-16
  • 打赏
  • 举报
回复
declare @nsql ntext
exec(@nsql)
chen8967 2005-10-16
  • 打赏
  • 举报
回复
啥语句,你要那么长?
新鲜鱼排 2005-10-16
  • 打赏
  • 举报
回复
exec (@s1 + @s2)
whidy 2005-10-16
  • 打赏
  • 举报
回复
declare @s1 nvarchar(4000)
declare @s2 nvarchar(4000)
set @s1 = 'select * from t1'
set @s2 = ' select * from t2'

execute sp_executesql @s1 + @s2

不行
whidy 2005-10-16
  • 打赏
  • 举报
回复
只能采取类似方法减少语句长度了
zoubsky 2005-10-16
  • 打赏
  • 举报
回复
楼主:
   条件太长了,影响效率啊,你可以把一些查询建立在视图上的,这样不就可以满足你的要求吗?
whidy 2005-10-16
  • 打赏
  • 举报
回复
to chen8967
一个功能,需要那么长的查询.这样可以一次性从存储过程获取想要的视图
whidy 2005-10-16
  • 打赏
  • 举报
回复
对于局部变量,text、ntext 和 image 数据类型无效
iwl 2005-10-15
  • 打赏
  • 举报
回复
--try

declare @sql1 varchar(4000),@sql2 varchar(4000),@sql3 varchar(4000)

set @sql1=字符组合

set @sql2=字符组合

set @sql3=字符组合


exec (@sql+@sql2++@sql3)

whidy 2005-10-15
  • 打赏
  • 举报
回复
不行啊
zlp321002 2005-10-15
  • 打赏
  • 举报
回复
--那就构造多个变量,来拼簇!

22,207

社区成员

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

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