SQL 2005 nvarchar(MAX)为什么只能支持8192个字符 写了一个超长的sql查询,因为涉及到十几个数据库的多个表,用加号一个一个的组合sql代码,写完后PRINT输出这个变量,发现超过8192个字符的所有代码都被截断了。可资料上不是说MAX最大可以支持2G的字符的吗,为什么我这里只能容纳8192个字符呢希望知道的朋友能帮下,谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 print问退varchar(max)支持2g数据 你是定义一个变量接受你超长的sql语句吗?超长的sql 语句最长也是4000字符啊!你把你的组合分步实现就好了,搞那么长做什么? 因为是做数据统计用的,而且涉及到十几个数据库的多个表,所以生成的sql代码非常的长。 我用的是nvarchar变量,因为sp_executesql不支持varchar所以只能用nvarchar变量 对Print如果消息字符串为非 Unicode 字符串,则最长不得超过 8,000 个字符;如果消息字符串为 Unicode 字符串,则最长不得超过 4,000 个字符。超过最大长度的字符串会被截断。 varchar(max) 遇到 非varchar(max)的时候,会转为 非varchar(max)e.gdeclare @s varchar(max)set @s = replicate('s',9999)select len(@s)declare @s1 varchar(max)set @s1 = 's'set @s = replicate(@s1,9999)select len(@s)--------------------8000(1 行受影响)--------------------9999 SQL2008 存储过程 传入起始日期,终止日期.返回一个由日期天的个位数组成的数组 .NET 导入excel中的时间数据的问题 求一个查询语句 有关SQL数据库的连接问题 只有【高手】才能解决的Sql问题 Access 百分比小数的位数 ODBC连接问题 紧急求治:ADO连接远程数据库的问题 这个关系到底该怎么建阿?? java 连接sql2005报异常 求助~~~ 这样的select语句怎么写?
varchar(max)支持2g数据
你把你的组合分步实现就好了,搞那么长做什么?
因为是做数据统计用的,而且涉及到十几个数据库的多个表,所以生成的sql代码非常的长。
declare @s varchar(max)
set @s = replicate('s',9999)
select len(@s)declare @s1 varchar(max)
set @s1 = 's'
set @s = replicate(@s1,9999)
select len(@s)
--------------------
8000(1 行受影响)
--------------------
9999