• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
专注于技术,专注于生活
这样才是程序员的生命
博客园    首页    新随笔    联系   管理    订阅  订阅

动态SQL字符长度超过8000

动态SQL字符长度超过8000,我记得SQL SERVER 2008中用SP_EXECUTESQL打破了这个限制。

 

平常用动态SQL,可能都会用EXEC(),但是有限制,就是8000字符串长度。自从SQL SERVER 2005起,在 INSIDE SQLSERVER 2005 T-SQL PROGRAMMING中提到,使用SP_EXECUTESQL()和NVARCHAR(MAX)可以超越8000个字符的限制。因为 SP_EXECUTESQL()必须使用NVARCHAR,NCHAR,NTEXT作为参数,所以SP_EXECUTESQL()的最长字符限制就是 4000。

 

我们看一个NVARCHAR(4000)的例子:

 

 

 

如何打破这个限制,我们再看(将SQL字符变量类型设置为NVARCHAR(MAX)):

 

 

可以看到,成功执行了SQL字符长度为9999的动态SQL。。

 

看一个SQL字符超过100000的例子:

 

 

 

字符串长度巨大,我只能将结果保存到RPT文件,可惜的是,我的机器(2.5内存+32位WIN2003)还是不能显示,肯定是资源不够用

posted @ 2015-06-04 13:48  錒飛  阅读(980)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3