社区
应用实例
帖子详情
动态语句的长度已经超过了nvarchar的最大4000字符限制,怎么办啊?
mastererp
2004-11-08 01:46:22
我用sp_executesql调用一个动态语句,可是语句太长了,已经超过了存放的字段类型nvarchar的最大长度4000,应该怎么解决啊?
sp_executesql好像不接受多个变量组成一个SQL语句
...全文
438
9
打赏
收藏
动态语句的长度已经超过了nvarchar的最大4000字符限制,怎么办啊?
我用sp_executesql调用一个动态语句,可是语句太长了,已经超过了存放的字段类型nvarchar的最大长度4000,应该怎么解决啊? sp_executesql好像不接受多个变量组成一个SQL语句
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ORARichard
2004-11-08
打赏
举报
回复
这么长的sql语句,也有点夸张了吧。建议楼主把你这个sql语句所要执行用途说出来,可能会有比这个动态的sql更好的解决方法。
liushengni
2004-11-08
打赏
举报
回复
ding
mastererp
2004-11-08
打赏
举报
回复
exec(@str1 + @str2 + @str3 ...)也不行,还是会自动截取前4000个,似乎传递给EXEC的参数就是nvarchar类型
mastererp
2004-11-08
打赏
举报
回复
如果用varchar(8000)的话,长度是够了,可是里面的中文都变成问号了,我的collation是Latin字符,用Unicode的nvarchar可以,varchar就不行了
mastererp
2004-11-08
打赏
举报
回复
我的意思是sp_executesql不接受动态语句是由"+"连接起来的情况,譬如
sp_executesql @SQL1+@SQL2
haoK
2004-11-08
打赏
举报
回复
数据类型的限制呀,没办法,
改用exec(@str1 + @str2 + @str3 ...)的形式行吗?
Andy__Huang
2004-11-08
打赏
举报
回复
declare @sql1 varchar(8000),@sql2 varchar(8000)........
set @sql1 ='select col1....'
set @sql2 ='select col1....'
exec(@sql1+@sql2)
fxcl2006
2004-11-08
打赏
举报
回复
换做varchar(8000)够吗?
mgsray
2004-11-08
打赏
举报
回复
楼主这个动态语句也太动态了吧,4000还不够...
sp_executesql可以接受多个变量的,具体看看联机帮助
动态
SQL
字符
长度
超过
4000
使用数据类型 n
varchar
(max)
n
varchar
(max) 使用
MSSQL的n
varchar
字段容纳超长
字符
的变通办法
在设计MSSQL数据表时,依实际需求,某字段需要使用n
varchar
字段,但n
varchar
字段最多能容纳
4000
个
字符
,如果需要容纳
超过
4000
字符
的信息,一般要改为使用ntext字段。但ntext字段有诸多
限制
,检索、插入、更新都比较麻烦。如何保持使用n
varchar
字段的需求,又能容纳较多
字符
呢?笔者采用了如下变通措施,效果良好: 一、用“一分为几”的方法,把该字段分为几个字段,本例中预计...
sqlserver sp_executesql
动态
SQL
字符
长度
超过
8000
动态
SQL
字符
长度
超过
8000,我记得SQL SERVER 2005中用SP_EXECUTESQL打破了这个
限制
。 平常用
动态
SQL,可能都会用EXEC(),但是有
限制
,就是8000
字符
串
长度
。自从SQL SERVER 2005起,在 INSIDE SQLSERVER 2005 T-SQL PROGRAMMING中提到,使用SP_EXECUTESQL()和N
VARCHAR
(MAX)
动态
SQL
字符
长度
超过
8000【SQL SERVER 2005之完美解决方案】
动态
SQL
字符
长度
超过
8000,我记得SQL SERVER 2005中用SP_EXECUTESQL打破了这个
限制
。 平常用
动态
SQL,可能都会用EXEC(),但是有
限制
,就是8000
字符
串
长度
。自从SQL SERVER 2005起,在 INSIDE SQLSERVER 2005 T-SQL PROGRAMMING中提到,使用SP_EXECUTESQL()和N
VARCHAR
(MAX)可以超越8
验证输入的
字符
串
长度
是否
超过
数据库字段的
长度
由于一个汉字占两个字节,所以不能很简单的通过str.Length和数据库表字段的
长度
来比较。 当然,数据库(SQL SERVER)表字段的类型也是需要考虑的。CHAR/
VARCHAR
和NCHAR/N
VARCHAR
所能存储的汉字也会不一样。CHAR/
VARCHAR
类型的字段,一个汉字的
长度
为2,NCHAR/N
VARCHAR
类型的字段,一个汉字的
长度
为1。 代码如下: string...
应用实例
27,579
社区成员
68,558
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章